如何通过beautifulsoup 从具有清新提要的网站中提取完整的html 代码?

我想用来自 9gag 提要(以及后来的其他图像板)的帖子建立一个语料库。为此,我尝试提取源 html 代码。不幸的是,一旦我想从该 html 代码中的提要中找到文章,似乎这些文章还没有与 html 代码一起提取。当我在提要中搜索某些内容时,使用 .find() 总是返回 -None- 。


此时我使用了 lxml、html.parser 和 html5lib:


soup = BeautifulSoup(source, 'html5lib')

我搜索了浏览器显示给我的代码中出现的各种关键字,此时:


entry = soup.find('div')

比较浏览器检查器和汤变量中的代码,我得到不同的结果。检查器找到了汤变量找不到的关键字。


我试图将requests.get函数的输出从更改为.text,.content但仍然没有出现所需的代码


##get source text of 9gag

source = requests.get('https://9gag.com').text


##make source a soup-type

soup = BeautifulSoup(source, 'html5lib')


##clip out the needed code of html for entrys

entry = soup.find('div id')

我怎样才能获得 9gag 提要的完整代码,分别是形成单独帖子的代码?


还有什么可能出了问题?


慕姐4208626
浏览 148回答 1
1回答

白猪掌柜的

似乎数据是以 JSON 形式接收的,因此最好仅使用requestsandJSON库来完成此任务。所以你的代码应该是这样的:import requestsimport jsonurl = "https://9gag.com"headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:66.0) Gecko/20100101 Firefox/66.0"}req = requests.get(url, headers=headers).textjson_raw = req[req.index("{\"page\":"):req.index("}})")+2]posts = json.loads(json_raw)["data"]['posts']希望这可以帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python