码迷,mamicode.com
首页 > 编程语言 > 详细

python爬虫(二):向网页提交数据

时间:2015-08-06 16:58:15      阅读:327      评论:0      收藏:0      [点我收藏+]

标签:python   爬虫   异步   数据   

python爬虫(二):向网页提交数据

回忆一下,我们有的时候在看一些网站的时候,是否遇见过一些网站里面的信息开始显示一部分,然后当我们把鼠标滑轮向下拉动后,又显示出一些信息。这就是异步加载。我的上一篇文章python爬虫百度贴吧标题数据爬取的所有标题都是页面已经加载好的。但是对于这种开始没有加载好的数据我们应该如何爬取呢?

接下来我们先介绍下一些概念:

  • 异步加载:举个简单的例子就是说,假如老师判作业,有两种情况,第一种就是无论哪个学生先写完,都等待到所有的同学全部写完,老师讲所有的作业都收齐后开始判作业。第二种情况就是有一个同学写完作业,老师就判一个。这样可以节省一些时间,也不会影响进度。这里的第二种方法就是异步加载。
  • Get方法是从服务器上获取数据
  • Post是向服务器传送数据
  • Get通过构造URL中的参数来实现功能
  • Post是将数据放在header中提交数据

向网页提交数据

  • 核心方法:requests.post
  • 核心步骤:构造表单-提交表单-获取返回信息

进入我们构建代码环节

首先 我们先来浏览下我们要爬取的网站:

技术分享

我们现在来打开Chrome的审查元素,如何所示

技术分享

我们在网页的源代码中,我们可以发现,每个卡片对应的标题都存放在这种格式的代码中。

<div class="card-title">Titomirov Vodka LLC</div>

OK,我们寻找到了规律,那么我们就可以根据这个规律构建我们的程序:

title = re.findall(‘"card-title">(.*?)</div>‘,post_html.text,re.S)

以上代码不明白什么意思,可以观看python爬虫百度贴吧标题数据

那么查找标题我们写完了,接下来进入我们的重点。

当我们向下滑动,并且滑动到底部的时候,会出现这种现象:

技术分享

这就是在异步加载数据,那么我们如何获取这些异步加载瘦的数据呢?

使用我们的审查元素,点击NetWork,如图所示:

技术分享

现在所有的数据都是空的,这个时候我们向下滑动我们的鼠标滚轮,这个时候你就会看见很多的数据,如图:

技术分享

在NetWork中点击第一个name,我们会看见以下信息:

技术分享

现在我们来分析一下:

查看

Remote Address:50.18.112.181:443
Request URL:https://www.crowdfunder.com/deals&template=false&random_seed=1
Request Method:POST
Status Code:200 OK

Request Method:POST这说明我们向网页提交了数据

提交地址:https://www.crowdfunder.com/deals&template=false&random_seed=1

我们接下来分析提价数据,往下翻,找到:

form Data

entities_only:true
page:1

以上就是提交信息,根据英文意思判断 page就是我们的页数。根据以上信息 我们就可以构建我们的表单了:

#注意这里的page后面跟的数字需要放到引号里面。
post_data = {
    ‘entities_only‘:‘true‘,
    ‘page‘:‘1‘
}

提交此表单后,我们就可以获取返回信息,在返回信息中应用正则表达式,提取我们感兴趣饿的内容。

完整代码如下:

#-*-coding:utf8-*-
import requests
import re
# url = ‘https://www.crowdfunder.com/browse/deals‘
url = ‘https://www.crowdfunder.com/deals&template=false‘
post_data = {
    ‘entities_only‘:‘true‘,
    ‘page‘:‘1‘
}
# 提交并获取返回数据
post_html = requests.post(url,data=post_data)
#对返回数据进行分析
titles = re.findall(‘"card-title">(.*?)</div>‘,post_html.text,re.S)
for title in titles:
    print title

当你将’page’:’1’,改为’page’:’2’ 将会得到不同的数据。

以上就是全部的内容,有什么问题或者不足,欢迎提出来,我们继续讨论。

版权声明:本文为博主原创文章,未经博主允许不得转载。

python爬虫(二):向网页提交数据

标签:python   爬虫   异步   数据   

原文地址:http://blog.csdn.net/lastdays_l/article/details/47317661

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!