我是一个初学者,正在开发一个可以从给定网站抓取电子邮件的程序。代码如下:
import requests, bs4, re
print('Fetching Website...')
res = requests.get('https://examplewebsite.com')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
type(soup)
my_list = []
for link in soup.find_all('a'):
my_list.append(link.get('href'))
emailregex = re.compile(r'''(
[a-zA-Z0-9._%+-:]+
@
[a-zA-Z0-9.-]+
\.[a-zA-Z]{2,4}
)''', re.VERBOSE)
newlist = list(filter(emailregex.search, my_list))
print(newlist)
print('---Done---')
但是,当我运行代码时,我收到一个错误:“TypeError:预期的字符串或类似字节的对象”。我发现如果我这样做:
newlist = list(filter(emailregex.search, str(my_list)))
print(newlist)
错误将消失,但我的“新列表”不包含任何结果。我已验证“my_list”确实返回了预期结果的列表。我发现,如果我打印“my_list”并将其内容粘贴到一个新文件中,在那里我将其添加到运行相同代码的列表中,它就可以正常工作,因此我不认为这是正则表达式的问题。我认为这可能是“my_list”中的数据类型?我真的没有任何好主意,所以任何帮助都将不胜感激。
青春有我
慕婉清6462132
相关分类