python爬虫网站信息_python爬虫(二):向网页提交数据

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

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

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

异步加载:举个简单的例子就是说,假如老师判作业,有两种情况,第一种就是无论哪个学生先写完,都等待到所有的同学全部写完,老师讲所有的作业都收齐后开始判作业。第二种情况就是有一个同学写完作业,老师就判一个。这样可以节省一些时间,也不会影响进度。这里的第二种方法就是异步加载。

Get方法是从服务器上获取数据

Post是向服务器传送数据

Get通过构造URL中的参数来实现功能

Post是将数据放在header中提交数据

向网页提交数据

核心方法:requests.post

核心步骤:构造表单-提交表单-获取返回信息

进入我们构建代码环节

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

20150806152727813

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

20150806152821192

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

Titomirov Vodka LLC

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

title = re.findall(‘"card-title">(.*?)

‘,post_html.text,re.S)

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

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

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

20150806152956318

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

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

20150806153043377

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

20150806153127196

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

20150806153159937

现在我们来分析一下:

查看

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这说明我们向网页提交了数据

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

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">(.*?)‘,post_html.text,re.S)

for title in titles:

print title

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值