【问题标题】:Scrapy error on Scraping刮擦上的刮擦错误
【发布时间】:2017-02-09 07:42:22
【问题描述】:

这就是我想要做的。我想从许多网站上抓取电子邮件。我有一个文件,我可以使用它输入scrapy所有的url列表。这就是我尝试提取电子邮件的方式:

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


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

    start_urls = ["http://example.com"]#[url.strip() for url in starturlfile.readlines()]


    def parse(self, response):

        DOWNLOADER_MIDDLEWARES = 
        {
            'scrapy_proxy_rotator.ProxyMiddleware': 1,
        }

        PROXY_ROTATOR = 
        {
            'username': 'user1',
            'password': 'pass1',
            'proxies_file': 'proxies.txt',
        }
        emails = re.findall(r'[\w\.-]+@[\w\.-]+', response.body)        
        emailitems = []
        for email in zip(emails):
            emailitem = EmailItem()
            emailitem["email"] = emails
            emailitem["source"] = response.url

        return emailitems

我将命令运行为:

scrapy runspider scrapyDemo.py -o t.json -t json

得到了错误:

2017-02-09 12:58:34 [scrapy.utils.log] INFO: Scrapy 1.3.0 started (bot: scrapybot)
2017-02-09 12:58:34 [scrapy.utils.log] INFO: Overridden settings: {'FEED_FORMAT': 'json', 'FEED_URI': 't.json'}
Usage
=====
  scrapy runspider [options] <spider_file>

runspider: error: Unable to load 'scrapyDemo.py': No module named techfinder.items

为什么我会收到此错误?另外,我如何使用我的程序抓取完整的网站并以优化的方式获取电子邮件?我正在使用代理轮换器来支持多个代理。如果可能的话,如何在我的代码中添加用户代理定义?
请帮我解决这个问题。
请让我告诉你,我不会为垃圾邮件抓取电子邮件。由于我有很多网站,我试图从中获取电子邮件。

【问题讨论】:

  • 有人可以帮我吗?

标签: python python-3.x web-scraping scrapy web-crawler


【解决方案1】:

run spider 命令中,您需要使用的不是文件名,而是Spider 名称,该名称在类中设置为属性:

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

所以:

$ scrapy runspider test  -o t.json -t json

【讨论】:

  • 请你告诉我这个错误是什么意思。我尝试使用您指定的方式:Usage ===== scrapy runspider [options] &lt;spider_file&gt; runspider: error: File not found: test 请您阅读我的问题并告诉我您的建议。我会很高兴听到:)
  • 看起来你的 scrapy 安装无效。尝试列出所有蜘蛛:scrapy list。还应该有文件 scrapy.cfg 和部分 [settings] - 查找设置的位置,以及 [deploy] - 所有文件所在的位置。
  • Spiders 应该位于相对于安装根目录的&lt;project-dir&gt;/spiders 文件夹中。
  • 显示scrapy listcat scrapy.cfg的输出。
  • scrapy list: Scrapy 1.3.0 - no active project Unknown command: list Use "scrapy" to see available commands
猜你喜欢
  • 2020-01-09
  • 2021-09-06
  • 2014-08-10
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多