在获取网页时出现的错误
来源:2-2 json知识点学习

艾卡西亚在下雨
2019-04-28
在爬取微博移动端时出现问题 这是爬取的URL 链接描述
在爬取第一个URL(https://m.weibo.cn/comments/hotflow?id=4366030191536361&mid=4366030191536361&max_id_type=0)时没有问题
但是在爬取第二个URL(https://m.weibo.cn/comments/hotflow?id=4366030191536361&mid=4366030191536361&max_id=140209465195163&max_id_type=0)出现了错误。
这两个URL的网页都是一样的,在preview 和 response 中都能看见数据,而且结构也一样,理应可以用同样的方式获取数据呀。
第一个URL在地址栏中打开可以看见全部数据代码,第二个URL只能看见 {“ok”:0}
import requests
import json
from pyquery import PyQuery
storagePath = './static/comments.txt'
def get_html_doc(url):
response = requests.get(url)
data = json.loads(response.text)
# pprint.pprint(data)
users = data['data']['data']
with open('./static/comments.txt', 'a') as f:
for user in users:
# print('**********************************************')
print(PyQuery(user['text']).text())
data = str(PyQuery(user['text']).text())
f.write(data + '\n')
# print("用户名: " + user['user']['screen_name'])
# print("用户主页: " + user['user']['profile_url'])
def main():
# url = 'https://m.weibo.cn/comments/hotflow?id=4364742854056110&mid=4364742854056110&max_id_type=0'
# url = 'https://m.weibo.cn/comments/hotflow?id=4366030191536361&mid=4366030191536361&max_id_type=0'
url = 'https://m.weibo.cn/comments/hotflow?id=4366030191536361&mid=4366030191536361&max_id=140209465195163&max_id_type=0'
get_html_doc(url)
if __name__ == '__main__':
main()
写回答
1回答
-
看了一下你的代码,第三个URL爬取不成功,在浏览器直接访问的时候会跳转到登录页面去,多了一个参数max_id=140209465195163,去掉就可以了。
这种大网站一般都有反扒机制的,有些需要登录,有些要验证码,有些还要求你登录。
你可以尝试着把你登录后的cookie放到请求头里面试试。
012019-04-29
相似问题
老师,运行京东网的爬虫出现错误
回答 1
网页是静态网页还是动态网页
回答 1
excel中数据插入数据库时出错
回答 1
我想请问怎么爬取多页的内容
回答 1
实战抓取淘宝JSON数据错误
回答 1