Python爬虫爬取AJAX

2025-11-18 11:42:47

1、首先把需要的库安装一下,pip isntall requests,pip install pyquery ,urlencode是python3内置了不用安装 

2、然后我们分析下要爬取的网页,我这里以豆瓣电影为例,打开页面打开浏览器开发者工具,点Network选项,然后刷新网页,再选取XHR这种就是AJAX传来的数据了,经分析我们要爬取的首页电影网址为:https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0

https://movie.douban.com/j/search_subjects?这条后面跟着参数,不同参数返回不同内容,这条就是返回了 热门的50条内容

Python爬虫爬取AJAX

3、接下来开始写代码

先引入需要的库

from urllib.parse import urlencode

from pyquery import PyQuery as pq

import requests

URL和请求头伪装浏览器访问

hot_url='https://movie.douban.com/j/search_subjects?'

headers = {

        'Host':'movie.douban.com',

        'Referer':'https://movie.douban.com/',

        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',

        'X-Requested-With':'XMLHttpRequest',

        }

获取json方法 ,params里参数可以根据需求修改,此处URL由最上的URL加上params参数合成一个新的请求网址,然后再请求这个网址返回json数据

def get_page():

    params = {

        'type': 'movie',

        'tag':'豆瓣高分',

        'page_limit': '50',

        'page_start': '0',

    }

    url = hot_url + urlencode(params)

    

    try:

        response = requests.get(url,headers=headers)

        if response.status_code == 200:

            return response.json()

        

    except requests.ConnectionError as e:

        print('Error',e.args)

定义一个解析方法,遍历数据,获取我们想要的结果,我这里只获取了标题、评分、图片地址

def ps_page(json):

    if json:

        item = json.get('subjects')

        for it in item:

            moive={}

            moive['title'] = it.get('title')

            moive['rate'] = it.get('rate')

            moive['cover'] = it.get('cover')

            yield moive

最后遍历打印结果

if __name__ == '__main__':

    json = get_page()

    res = ps_page(json)

    for re in res:

        print(re)

Python爬虫爬取AJAX

Python爬虫爬取AJAX

Python爬虫爬取AJAX

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢