gpt4 book ai didi

python - 使用 BeautifulSoup 抓取 Pantip 论坛

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:59 27 4
gpt4 key购买 nike

我正在尝试从 http://pantip.com/tag/Isuzu 抓取一些论坛帖子

其中一个页面是http://pantip.com/topic/35647305

我想将每个帖子文本及其作者和时间戳放入 csv 文件中。

我正在使用 Beautiful Soup,但不可否认,我是 python 和网络抓取的初学者。我现在拥有的代码获取了必填字段,但仅限于第一篇文章。我需要该线程上所有帖子的信息。我尝试了soup.find_all()和soup.select(),但没有得到想要的结果。

这是我正在使用的代码:

from bs4 import BeautifulSoup
import urllib2

print "Reading URL..."
url = urllib2.urlopen("http://pantip.com/topic/35647305")
content = url.read()
soup = BeautifulSoup(content, "html.parser")

print "Finding desired HTML..."
table = soup.select("abbr.timeago")

print "\nScraped HTML is:"
print table

text = BeautifulSoup(str(table).strip(),"html.parser").get_text().encode("utf-8").replace("\n", "")
print "\nScraped text is:\n" + text

任何有关我做错了什么的线索将不胜感激。此外,欢迎提出有关如何以更好、更清洁的方式完成此操作的任何建议。

如前所述,我是初学者,所以请不要介意任何愚蠢的错误。 :-)

谢谢!

最佳答案

评论是使用 Ajax 请求呈现的:

import requests
from bs4 import BeautifulSoup

params = {"tid": "35647305", # in the url
"type": "3"}

with requests.Session() as s:
s.headers.update({"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"})
r = (s.get("http://pantip.com/forum/topic/render_comments", params=params))
data = r.json() # data["comments"] contains what you want

这将为您提供所有数据。因此,您需要的只是从每个 url 传递 tid 并更新 params 字典中的 tid。

关于python - 使用 BeautifulSoup 抓取 Pantip 论坛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40040427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com