scrapy相关内容

如何绕过 Scrapy 中的 cloudflare bot/ddos 保护?

我曾经偶尔抓取电子商务网页以获取产品价格信息.我有一段时间没有使用使用 Scrapy 构建的刮板,昨天尝试使用它 - 我遇到了机器人保护问题. 它使用 CloudFlare 的 DDOS 保护,基本上是使用 JavaScript 评估来过滤禁用 JS 的浏览器(以及因此抓取工具).一旦函数被评估,就会生成带有计算数字的响应.作为回报,服务发回两个身份验证 cookie,这些 cookie 附 ..
发布时间:2021-12-21 12:40:20 前端开发

使用 Google Cloud Functions 时 ReactorNotRestartable with scrapy

我正在尝试使用 Google Cloud Functions 发送多个抓取请求.但是,我似乎收到了 ReactorNotRestartable 错误.从 StackOverflow 上的其他帖子,例如 这个,我明白这是因为它不是可以重新启动反应器,尤其是在进行循环时. 解决这个问题的方法是将 start() 放在 for 循环之外.但是,对于 Cloud Functions,这是不可能的,因 ..
发布时间:2021-12-20 19:22:31 Python

在 Scrapy 中访问 django 模型

是否可以在 Scrapy 管道内访问我的 Django 模型,以便我可以将抓取的数据直接保存到我的模型中? 我看过这个,但我真的不知道如何设置它起来了? 解决方案 如果其他人遇到同样的问题,我就是这样解决的. 我将此添加到我的scrapy settings.py 文件中: def setup_django_env(path):进口进出口,操作系统从 django.core.m ..
发布时间:2021-12-19 11:04:27 Python

通过 .txt 文件向 Scrapy Spider 传递要抓取的 URL 列表

我对 Python 有点陌生,对 Scrapy 也很陌生. 我已经设置了一个蜘蛛来抓取和提取我需要的所有信息.但是,我需要将 URL 的 .txt 文件传递​​给 start_urls 变量. 例如: class LinkChecker(BaseSpider):名称 = '链接检查器'start_urls = [] #这里我希望列表开始通过命令行从文本文件中抓取 url 列表. 我 ..

CSV 导出 - 使用 scrapy crawl -o output.csv 对列进行排序

有没有办法使用 -o 参数指定 CSV 输出中列的顺序? 它似乎遵循随机顺序,不遵循 items.py 文件中的顺序,或者当项目字段在刮取中填充时. 谢谢! 解决方案 有一个相关的field_to_export 属性 在 CsvItemExporter,但是,据我所知,无法从命令行设置它.你需要通过管道来做,见: 如何使用 BaseItemExporter 中的 fiel ..
发布时间:2021-12-17 14:07:21 Python

如何使用python抓取谷歌地图

我正在尝试使用 python 从谷歌地图中抓取某个地方的评论数量.例如,Pike's Landing 餐厅(见下面的谷歌地图 URL)有 162 条评论.我想在 python 中提取这个数字. 网址:https://www.google.com/maps?cid=15423079754231040967 我不是非常精通HTML,但是从互联网上的一些基本示例中我编写了以下代码,但是在运行 ..
发布时间:2021-12-17 14:05:46 前端开发

无法摆脱 csv 输出中的空白行

我在 python scrapy 中编写了一个非常小的脚本来解析在来自黄页网站的多个页面上显示的姓名、街道和电话号码.当我运行我的脚本时,我发现它运行顺利.但是,我遇到的唯一问题是在 csv 输出中抓取数据的方式.它始终是两行之间的线(行)间隙.我的意思是:数据每隔一行打印一次.看到下面的图片你就会明白我的意思.如果不是scrapy,我本可以使用[newline=''].但是,不幸的是,我在这里完 ..
发布时间:2021-12-17 14:05:22 其他开发

如何使 Selenium 脚本运行得更快?

我使用 Python Selenium 和 Scrapy 来抓取网站. 但是我的脚本太慢了, 抓取 1 页(以 1 页/分钟的速度) 我使用 CSS SELECTOR 而不是 XPATH 来优化时间. 我改变了中间件 'tutorial.middlewares.MyCustomDownloaderMiddleware':543, Selenium 是不是太慢了,还是我应该在设置中更改一 ..
发布时间:2021-12-17 13:59:39 Python

我如何设置 Scrapy 来处理验证码

我正在尝试抓取一个需要用户输入搜索值和验证码的网站.我有一个用于验证码的光学字符识别 (OCR) 程序,大约 33% 的时间成功.由于验证码始终是字母文本,如果 OCR 函数返回非字母字符,我想重新加载验证码.一旦我有一个文本“单词",我想提交搜索表单. 结果返回到同一页面,表单已准备好进行新的搜索和新的验证码.所以我需要冲洗并重复,直到我用尽我的搜索词. 这是顶级算法: 初始加 ..
发布时间:2021-12-17 13:59:03 Python

使用 Scrapy 抓取 JSON 响应

如何使用 Scrapy 抓取返回 JSON 的 Web 请求?例如,JSON 将如下所示: {"firstName": "约翰","lastName": "史密斯",“年龄":25,“地址": {"streetAddress": "21 2nd Street","city": "纽约","state": "纽约",“邮政编码":“10021"},“电话号码": [{"类型": "家",“号码": ..
发布时间:2021-12-17 13:58:03 Python

检查 404 错误的 url

我正在浏览一组页面,我不确定有多少页面,但当前页面由 url 中的一个简单数字表示(例如“http://www.website.com/page/1") 我想在scrapy中使用for循环来增加页面的当前猜测并在达到404时停止.我知道从请求返回的响应包含此信息,但我不确定如何自动从请求中获得响应. 关于如何做到这一点的任何想法? 目前我的代码是这样的: def start_r ..
发布时间:2021-12-17 13:53:09 Python

抓取某些 url 时无法使我的脚本停止

我在scrapy中创建了一个脚本来解析start_urls中列出的不同站点的标题.脚本完美地完成了它的工作. 我现在想做的是让我的脚本在解析了两个 url 后停止,无论有多少个 url. 到目前为止我已经尝试过: 导入scrapy从 scrapy.crawler 导入 CrawlerProcess类 TitleSpider(scrapy.Spider):name = "title_b ..
发布时间:2021-12-17 13:52:05 Python

如何使用 Scrapy 从网站获取所有纯文本?

我希望在呈现 HTML 后让网站上的所有文本都可见.我正在使用 Scrapy 框架在 Python 中工作.使用 xpath('//body//text()') 我能够得到它,但是使用 HTML 标签,我只想要文本.有什么解决办法吗? 解决方案 最简单的选择是 extract //body//text() 和 join 找到的所有内容: ''.join(sel.select("//bod ..
发布时间:2021-12-17 13:26:12 前端开发

在 Heroku 上使用 docker,scrapy 飞溅

我有一个爬虫爬虫,它使用在 Docker localhost:8050 上运行的飞溅来在爬取之前呈现 javascript.我正在尝试在 heroku 上运行它,但不知道如何配置 heroku 以在运行我的网站之前启动 docker 以运行 splash:scrapy crawl abc dyno.非常感谢任何指南! 解决方案 据我所知,您正在期待: 通过 Docker 容器在 He ..
发布时间:2021-12-16 22:51:20 其他开发

Scrapy - 如何管理 cookie/会话

我对 cookie 如何与 Scrapy 一起工作以及您如何管理这些 cookie 感到有些困惑. 这基本上是我正在尝试做的事情的简化版本: 网站的运作方式: 当您访问该网站时,您会获得一个会话 cookie. 当您进行搜索时,网站会记住您搜索的内容,因此当您执行诸如转到下一页结果之类的操作时,它会知道它正在处理的搜索. 我的脚本: 我的蜘蛛的起始网址为 sea ..
发布时间:2021-12-15 20:46:10 Python