我想爬取这个网页前200的电影信息,但出现问题。这个网页https://api.bilibili.com/pgc/page/feed?wid=10012&cursor=10&platform=web在cursor值为0-9的时候都正常显示,到cursor值10以上network的response里有内容,但把网址贴到浏览器只显示'啥都没有'。
应该是你速度设置的不对,然后被系统探测到你是机器人流量很大,然后IP被限制了。估计会被限制1天。
应该是b站的反爬虫机制,一次最多爬取一定的数量,超过就不行了。
可以参考这个up的教程,有教学和源码python六步爬取B站电影信息,你的名字果然最火......_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
请求接口的页面地址是哪个页面?
应该是超过10页后,需要一些验证的cookie信息,request对象要附带上对应cookie信息,需要研究请求的页面附带了哪些cookie,要附加上
我用POSTMan 做了一下,确实是可以传到参数10
https://api.bilibili.com/pgc/page/feed?wid=10012&cursor=10platform=web
你用这个链接跑。
import requests
import json
import pandas as pd
lists = []
index = []
count = 0
# 下载网页
for i in range(10): # 链接通过往下滑加载页面发现网址规律
url = 'https://api.bilibili.com/pgc/page/feed?wid=10012&cursor=' + str(i) + '&platform=web'
# 发送http get请求
response = requests.get(url).text
content = json.loads(response)
for i in range(len(content['result']['modules'])):
list = []
list.append(content['result']['modules'][i]['items'][0]['title'])
list.append(content['result']['modules'][i]['items'][0]['desc'])
list.append(content['result']['modules'][i]['items'][0]['aid'])
list.append(content['result']['modules'][i]['items'][0]['cid'])
lists.append(list)
count+=1
index.append(str(count))
print('爬取成功')
df = pd.DataFrame(lists,columns=['电影名', '介绍', 'aid', 'cid'],index=index)
df.to_csv(r"b站电影推荐.csv",encoding='utf_8_sig') # 解码
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632