在多个站点中解析电子邮件




我有一个关于通过Scrapy在各个站点中解析电子邮件的问题。
我有这样的蜘蛛:

from scrapy.contrib.spiders import CrawlSpider
from sufio.items import MItem

class MSpider(CrawlSpider):
    name = 'mparser'
    start_urls = [
        'https://horizonsupply.myshopify.com/pages/about-us',
        'https://fnatic-shop.myshopify.com/pages/about-us',
        'https://horizonsupply.myshopify.com/pages/about-us',
        'https://fnatic-shop.myshopify.com/pages/about-us'
    ]
    def parse(self, response):
        item = MItem()
        item['facebook'] = response.xpath('//a[contains(@href, "facebook")]/@href').extract_first()
        item['twitter'] = response.xpath('//a[contains(@href, "twitter")]/@href').extract_first()
#        item['email'] =
        yield item

我需要点击每个链接并检查是否有电子邮件。是否有可能通过刮擦的方式执行?

我使用这样的东西:

mails = response.xpath('//a[contains(@href, "mailto:")]/@href').extract()
    mails += response.xpath('//*[not(self::script or self::style)]/text()[normalize-space(.)][contains(.,"@")] | '
                            '//a[contains(./@href,"@")]/@href').extract()
    for a in response.xpath('//a[contains(text(),"@")]'):
        ma = ''.join(a.xpath('./text()').extract())
        mails.append(ma)

但是在此之后,我使用附加功能来删除重复和无效的行。

相关内容

最新更新