草庐IT

python - 如何绕过 Scrapy 失败的响应(状态代码 416、999,...)

我正在使用Scrapy编写脚本,但我遇到了失败的HTTP响应的问题。具体来说,我正在尝试从“https://www.crunchbase.com/”中抓取内容,但我一直收到HTTP状态代码416。网站可以阻止蜘蛛抓取其内容吗? 最佳答案 发生的事情是网站正在查看附加到您的请求的header,并确定您不是浏览器,因此阻止了您的请求。但是,如果您决定发送与浏览器相同的header,则网站无法区分Scrapy和Firefox/Chrome/IE/Safari。在Chrome中,打开NetworkTools控制台,您将准确地看到它发送的he

Python Scrapy : TypeError: to_bytes must receive a unicode, str 或 bytes 对象,得到 int

我不知道这段代码有什么问题。我正在尝试从99acres.com抓取数据。我已经通过了帖子参数。这是代码fromscrapyimportSpiderfromscrapy.httpimportFormRequestfromscrapy.selectorimportHtmlXPathSelectorclassaagSpider(Spider):name="acre"start_urls=["http://www.99acres.com"]defparse(self,response):frmdata3={"Refine_Localities":"RefineLocalities","acti

python - Scrapy:下载器/response_count 与 response_received_count

我正在使用scrapy爬取多个网站,想分析爬取率。最后转储的统计信息包含一个downloader/response_count值和一个response_received_count值。前者在系统上大于后者。为什么会有差异,爬虫的哪个元素会增加统计信息收集器中的两个值? 最佳答案 CoreStats是Extension负责response_received_countDownloaderStats是Middleware负责downloader/response_count.CoreStats分机正在连接signals.response

python - Scrapy CrawlSpider : how to access item across different levels of parsing

我正在抓取一个网站(只有两层深度),我想从两层的网站中抓取信息。我遇到的问题是,我想用两个级别的信息填写一个项目的字段。我该怎么做?我正在考虑将一个项目列表作为一个实例变量,所有线程都可以访问它(因为它是蜘蛛的同一个实例),parse_1将填写一些字段,parse_2将必须检查正确的填写相应值之前的键。这种方法看起来很繁琐,我仍然不确定如何使它起作用。我在想一定有更好的方法,也许可以通过某种方式将项目传递给回调。不过,我不知道如何使用Request()方法来做到这一点。想法? 最佳答案 来自scrapy文档:在某些情况下,您可能有兴

python - 如何在python中的scrapy中启用cookiemiddleware

在他们的文档中http://doc.scrapy.org/en/latest/topics/downloader-middleware.html#cookies-mw他们告诉我启用cookiemiddle,但我无法找到如何做到这一点以及为此编辑哪个文件。谁能告诉我我该怎么做 最佳答案 更新cookie似乎默认位于中间件中,因此只需COOKIES_ENABLED=True就足够了。如果中间件不是默认设置的一部分,则只需要以下内容...据我从doc.scrapy.org/en/latest/topics/downloader-middl

python - 使用scrapy分页

我正在尝试抓取此网站:http://www.aido.com/eshop/cl_2-c_189-p_185/stationery/pens.html我可以得到这个页面的所有产品,但是如何发出页面底部“查看更多”链接的请求?到目前为止我的代码是:rules=(Rule(SgmlLinkExtractor(restrict_xpaths='//li[@class="normalLeft"]/div/a',unique=True)),Rule(SgmlLinkExtractor(restrict_xpaths='//div[@id="topParentChilds"]/div/div[@cl

python - 如何为通过 socksipy 发出请求的 scrapy 编写 DownloadHandler?

我正在尝试在Tor上使用scrapy。我一直在努力思考如何为使用socksipy连接的scrapy编写DownloadHandler。Scrapy的HTTP11DownloadHandler在这里:https://github.com/scrapy/scrapy/blob/master/scrapy/core/downloader/handlers/http11.py以下是创建自定义下载处理程序的示例:https://github.com/scrapinghub/scrapyjs/blob/master/scrapyjs/dhandler.py这是创建SocksiPyConnectio

python - Scrapy:将参数传递给 cmdline.execute()

我知道从命令行运行scrapy蜘蛛时如何传递参数。但是,当我尝试使用scrapy的cmdline.execute()从脚本以编程方式运行它时遇到问题。我需要传递的参数是我之前格式化为字符串的列表,就像这样:numbers="one,two,three,four,five"colors="red,blue,black,yellow,pink"cmdline.execute('scrapycrawlmyspider-aarg1='+numbers+'-aarg2='+colors)蜘蛛是...classMySpider(Spider):name="myS"def__init__(self,

python - 如何将多个参数传递给 Scrapy 蜘蛛(不再支持使用多个蜘蛛运行 'scrapy crawl' 时出错)?

我想将多个用户定义的参数传递给我的scrapyspyder,所以我试着关注这篇文章:Howtopassauserdefinedargumentinscrapyspider但是,当我遵循那里的建议时,我得到了一个错误:root@scrapycrawldmoz-aaddress=40-1848thst-aborough=4Usage=====scrapycrawl[options]crawl:error:running'scrapycrawl'withmorethanonespiderisnolongersupported我还尝试了引号的各种排列:root@scrapycrawldmoz-

python - 如何访问 Scrapy CrawlSpider 中的特定 start_url?

我正在使用Scrapy,特别是Scrapy的CrawlSpider类来抓取包含某些关键字的Web链接。我有一个很长的start_urls从连接到Django项目的SQLite数据库中获取其条目的列表。我想将抓取的Web链接保存在此数据库中。我有两个Django模型,一个用于启动url,例如http://example.com一个用于抓取的网络链接,例如http://example.com/website1,http://example.com/website2等等。所有抓取的Web链接都是start_urls中起始网址之一的子站点。列表。网络链接模型与起始url模型具有多对一关系,即网