gpt4 book ai didi

python - 我怎样才能有效地可靠地抓取基本上未连接的线路?

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:12 25 4
gpt4 key购买 nike

很抱歉,如果这是一个含糊的标题。我正在尝试在一致的基础上收集 XKCD 网络漫画的数量。我看到了http://xkcd.com/总是在首页上显示他们最新的漫画,并在网站下方显示一行内容:

Permanent link to this comic: http://xkcd.com/1520/

其中 1520 是最新展示的漫画的编号。我想刮掉这个数字,但是,我找不到任何好的方法来做到这一点。目前我所有的尝试看起来都很黑客,比如:

soup = BeautifulSoup(urllib.urlopen('http://xkcd.com/').read())
test = soup.find_all('div')[7].get_text().split()[20][-5:-1]

我的意思是......这从技术上来说是可行的,但是如果网站上的任何内容发生轻微的移动,它可能会严重损坏。我知道必须有更好的方法来在首页的 a 部分中搜索 http:xkcd.com/####/ 并返回 #### 但我似乎找不到它。此漫画的永久链接:http://xkcd.com/1520/ 行似乎只是 float 的,没有任何类型的标签、类或 ID。有人可以提供任何帮助吗?

最佳答案

通常我坚持使用 HTML 解析器。在这里,由于我们正在寻找 HTML 中的特定文本(不检查任何标签),因此应用正则表达式搜索就可以了:

Permanent link to this comic: http://xkcd.com/(\d+)/

将数字保存在一组中。

演示:

>>> import re
>>> import requests
>>>
>>>
>>> data = requests.get("http://xkcd.com/").content
>>> pattern = re.compile(r'Permanent link to this comic: http://xkcd.com/(\d+)/')
>>> print pattern.search(data).group(1)
1520

关于python - 我怎样才能有效地可靠地抓取基本上未连接的线路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30065393/

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