gpt4 book ai didi

python - 使用 scrapy 在正文中查找电子邮件地址

转载 作者:行者123 更新时间:2023-11-28 22:37:29 25 4
gpt4 key购买 nike

我正在尝试使用 scrapy 查找页面上的所有电子邮件地址。

我找到了一个应该返回电子邮件地址的 xpath,但是当我运行下面的代码时,它没有找到任何电子邮件地址(我知道它们在那里)。我收到如下错误:

文件“C:\Anaconda2\lib\site-packages\scrapy\selector\unified.py”,第 100 行,在 xpath raise ValueError(msg if six.PY3 else msg.encode("unicode_escape"))ValueError:无效的 XPath://[-a-zA-Z0-9.]+@[-a-zA-Z0-9]+.[a-zA-Z0-9_.]+

这就是我的代码的样子。谁能告诉我我做错了什么?

我已将问题缩小到 xpath,但无法弄清楚如何解决它。

import scrapy
import datetime
from scrapy.spiders import CrawlSpider
from techfinder.items import EmailItem
from scrapy.selector import HtmlXPathSelector


class DetectSpider(scrapy.Spider):
name = "test"

alloweddomainfile = open("emaildomains.txt")
allowed_domains = [domain.strip() for domain in alloweddomainfile.readlines()]
alloweddomainfile.close()

starturlfile = open("emailurls.txt")
start_urls = [url.strip() for url in starturlfile.readlines()]
starturlfile.close()


def parse(self, response):




hxs = HtmlXPathSelector(response)


emails = hxs.xpath('//[-a-zA-Z0-9._]+@[-a-zA-Z0-9_]+.[a-zA-Z0-9_.]+').extract()
#[-a-zA-Z0-9._]+@[-a-zA-Z0-9_]+.[a-zA-Z0-9_.]+
#<a\s+href=\"mailto:([a-zA-Z0-9._@]*)\
#/^(|(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$/i



emailitems = []
for email in zip(emails):
emailitem = EmailItem()
emailitem["email"] = emails
emailitem["source"] = response.url
emailitem["datetime"] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
emailitems.append(emailitem)
return emailitems

最佳答案

您可以在 response.body 上使用正则表达式搜索来查找电子邮件 ID。

emails = re.findall(r'[\w\.-]+@[\w\.-]+', response.body)

关于python - 使用 scrapy 在正文中查找电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36557137/

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