gpt4 book ai didi

python - 编写一个 python 脚本,递归地遍历页面上的链接

转载 作者:太空狗 更新时间:2023-10-30 01:47:00 24 4
gpt4 key购买 nike

我正在为我的学校做一个项目,我想在其中比较诈骗邮件。我找到了这个网站:http://www.419scam.org/emails/现在我想做的是将每个骗局保存在不同的文件中,然后我可以分析它们。到目前为止,这是我的代码:

import BeautifulSoup, urllib2

address='http://www.419scam.org/emails/'
html = urllib2.urlopen(address).read()
f = open('test.txt', 'wb')
f.write(html)
f.close()

这以文本格式保存了整个 html 文件,现在我想剥离文件并将 html 链接的内容保存到骗局:

<a href="2011-12/01/index.htm">01</a> 
<a href="2011-12/02/index.htm">02</a>
<a href="2011-12/03/index.htm">03</a>

等等

如果我明白了,我仍然需要更进一步并打开保存另一个 href。知道如何在一个 Python 代码中做到这一点吗?

谢谢!

最佳答案

您在 BeautifulSoup 中选择了正确的工具。从技术上讲,您可以在一个脚本中完成所有操作,但您可能希望将其分段,因为看起来您将处理数以万计的电子邮件,所有这些都是单独的请求 - 这将需要

This page会对你有很大帮助,但这里只是一个小代码片段,可以帮助你入门。这会获取所有作为电子邮件索引页面的 html 标记,提取它们的 href 链接并在 url 的前面附加一点以便可以直接访问它们。

from bs4 import BeautifulSoup
import re
import urllib2
soup = BeautifulSoup(urllib2.urlopen("http://www.419scam.org/emails/"))
tags = soup.find_all(href=re.compile("20......../index\.htm")
links = []
for t in tags:
links.append("http://www.419scam.org/emails/" + t['href'])

're' 是 Python 的正则表达式模块。在第五行中,我告诉 BeautifulSoup 在汤中找到 href 属性与该正则表达式匹配的所有标签。我选择这个正则表达式来只获取电子邮件索引页面而不是该页面上的所有 href 链接。我注意到索引页面链接的所有 URL 都具有这种模式。

有了所有正确的 'a' 标签,然后我遍历它们,通过执行 t['href'] 从 href 属性中提取字符串并将 URL 的其余部分附加到字符串的前面,以获得原始字符串 URL。

通读该文档,您应该了解如何扩展这些技术来抓取各个电子邮件。

关于python - 编写一个 python 脚本,递归地遍历页面上的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10885708/

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