[求助] 为何微博网页代码有 1500 多行,而我只能提取 10%左右

2018-12-23 11:49:25 +08:00
 15874103329
为何微博网页代码有 1500 多行( response 内看到的),而我只能提取 10%左右,已经试过很多次了,代码如下:

import requests
from pyquery import PyQuery as pq
from urllib.parse import urlencode
import re

def dizhi():
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3573.0 Safari/537.36'}
data = {
'q': '微信群',
'typeall': '1',
'suball': '1',
'timescope': 'custom:2018 - 12 - 20 - 0: 2018 - 12 - 22 - 0',
'Refer': 'g'
}
url = 'https://s.weibo.com/weibo/%25E5%25AE%259D%25E5%25A6%2588%25E7%25BE%25A4?' + urlencode(data)
wangzhi = requests.get(url,headers = headers)
return wangzhi.text

def jiexi(html):
doc = pq(html)
item = doc('.m4 li')
for i in item.items():
print(i('img').attr('src'))

def main():
html = dizhi()
print(html)
jiexi(html)



if __name__ == '__main__':
main()
3106 次点击
所在节点    Python
6 条回复
jugelizi
2018-12-23 12:02:38 +08:00
是不是异步加载的数据
zhangsen1992
2018-12-23 12:06:46 +08:00
js
wly19960911
2018-12-23 12:09:19 +08:00
微博为什么抓页面啊,不是有 API 吗
helsonxiao
2018-12-23 13:41:52 +08:00
试试微博移动端的 api,限制少,可以拿来学习
meiyoumingzi6
2018-12-23 13:45:09 +08:00
https://html.python-requests.org


request-html 库试试,先执行下 js,再取 text
locoz
2018-12-24 16:16:12 +08:00
你在浏览器里看到的是经过 JS 渲染的,想看到和你自己写的程序去请求拿到的 response 完全一样的内容,请使用 postman 之类的工具。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX