爬虫抓取网页数据(python爬虫实战之三AJAX数据爬取和HTTPS访问(组图))
优采云 发布时间: 2022-03-15 01:24爬虫抓取网页数据(python爬虫实战之三AJAX数据爬取和HTTPS访问(组图))
python爬虫URL编码和GETPOST请求| python爬虫实战三 python爬虫AJAX数据爬取和HTTPS访问
我们首先需要回顾一下之前接触过的爬虫的概念、爬取过程、爬虫的标准库等。
通常我们在大多数情况下编写的爬虫都是专注的爬虫。
接下来,我们通过豆瓣电影对 JSON 数据进行处理。
处理 JSON 数据
看看“豆瓣电影”,看看“最近热门电影”的“火爆”。
右键单击“检查元素”,找到“网络”,然后刷新它。
我们可以看到很多内容,我们分析这部分热门电影。
然后复制地址进行操作分析。
通过分析,我们知道这部分内容是通过AJAX从后台获取的Json数据。
访问的 URL 是 %E7%83%AD%E9%97%A8&page_limit=50&page_start=0
其中,%E7%83%AD%E9%97%A8是utf-8编码的中文“热”
服务端返回的JSON数据如下:
轮播组件一共需要50条数据。
url的表示如下:
标签标签“hot”,意思是热门电影
type 数据类型,movie 是电影
page_limit 表示返回数据的总数
page_start 表示数据偏移量
我们可以设置page_limit=10&page_start=10的值。
from urllib.parse import urlencode
from urllib.request import urlopen, Request
import simplejson
ua = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36"
jurl = 'https://movie.douban.com/j/search_subjects'
d = {
'type':'movie',
'tag':'热门',
'page_limit':10,
'page_start':10
}
req = Request('{}?{}'.format(jurl, urlencode(d)), headers={
'User-agent':ua
})
with urlopen(req) as res:
subjects = simplejson.loads(res.read())
print(len(subjects['subjects']))
print(subjects)
结果:
至此,就可以获取到内容了,那我们还需要封装爬虫吗?
因为每个企业处理的方式可能不同,所以返回的数据可能是html或JSON。因此,处理方法必须一致,或者将函数封装在一个方法中是我们思考的重点。很多时候我们会为一些特定的数据写一个特定的爬虫,具体的网站。因为每个网站的解析提取方法可能不同。现在我们只做一个简单的 JSON 处理。但是如果是网页解析,那就很麻烦了,尤其是网页模板一旦改变,就需要重写网页解析方法。