req = request.Request('https://search.bilibili.com/all?keyword=%E5%BE%90%E5%A4%A7SAO') 目前这样只能爬取一页的数据,如何把全部数据爬取下来,求教?

来源:3-5 获取维基百科词条信息

小小铁头娃

2019-08-10 21:21

# encode:utf-8

# 引入开发包
from urllib import request
from bs4 import BeautifulSoup
import re

# 携带User-Agent的头,模拟真实浏览器来请求URL,并把结果用 utf-8 编码
req = request.Request('https://search.bilibili.com/all?keyword=%E5%BE%90%E5%A4%A7SAO')
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36')
resq = request.urlopen(req)
# 使用 BeautifulSoup 去解析
soup = BeautifulSoup(resq, 'html.parser')
# 获取所有以//www.bilibili.com/video/开头的a标签的href属性
listUrls = soup.findAll('a', href=re.compile('^//www\.bilibili\.com/video/'))
# 输出所有的词条对应的名称和url
for url in listUrls:
    print(url.get_text(), '<---->', url['href'])


写回答 关注

1回答

  • 蒙奇_D_路飞
    2019-08-20 18:02:33

    url修改成:https://api.bilibili.com/x/web-interface/search/type?search_type=video&highlight=1&keyword=%E5%BE%90%E5%A4%A7SAO&page=3&jsonp=jsonp&callback=__jp1直接设置page就可以了

python遇见数据采集

本教程让你初步掌握Python进行数据采集,创造属于你的价值

59669 学习 · 200 问题

查看课程

相似问题