scrapy相关内容
我刚刚开始编写 Python.我想用scrapy创建一个bot,它显示TypeError: 当我运行项目时,'bytes' 类型的对象不是 JSON 可序列化的. 导入json导入编解码器W3SchoolPipeline 类(对象):def __init__(self):self.file = codecs.open('w3school_data_utf8.json', 'wb', encodi
..
我曾经偶尔抓取电子商务网页以获取产品价格信息.我有一段时间没有使用使用 Scrapy 构建的刮板,昨天尝试使用它 - 我遇到了机器人保护问题. 它使用 CloudFlare 的 DDOS 保护,基本上是使用 JavaScript 评估来过滤禁用 JS 的浏览器(以及因此抓取工具).一旦函数被评估,就会生成带有计算数字的响应.作为回报,服务发回两个身份验证 cookie,这些 cookie 附
..
我正在尝试使用 Google Cloud Functions 发送多个抓取请求.但是,我似乎收到了 ReactorNotRestartable 错误.从 StackOverflow 上的其他帖子,例如 这个,我明白这是因为它不是可以重新启动反应器,尤其是在进行循环时. 解决这个问题的方法是将 start() 放在 for 循环之外.但是,对于 Cloud Functions,这是不可能的,因
..
是否可以在 Scrapy 管道内访问我的 Django 模型,以便我可以将抓取的数据直接保存到我的模型中? 我看过这个,但我真的不知道如何设置它起来了? 解决方案 如果其他人遇到同样的问题,我就是这样解决的. 我将此添加到我的scrapy settings.py 文件中: def setup_django_env(path):进口进出口,操作系统从 django.core.m
..
我对 Python 有点陌生,对 Scrapy 也很陌生. 我已经设置了一个蜘蛛来抓取和提取我需要的所有信息.但是,我需要将 URL 的 .txt 文件传递给 start_urls 变量. 例如: class LinkChecker(BaseSpider):名称 = '链接检查器'start_urls = [] #这里我希望列表开始通过命令行从文本文件中抓取 url 列表. 我
..
有没有办法使用 -o 参数指定 CSV 输出中列的顺序? 它似乎遵循随机顺序,不遵循 items.py 文件中的顺序,或者当项目字段在刮取中填充时. 谢谢! 解决方案 有一个相关的field_to_export 属性 在 CsvItemExporter,但是,据我所知,无法从命令行设置它.你需要通过管道来做,见: 如何使用 BaseItemExporter 中的 fiel
..
我正在尝试使用 python 从谷歌地图中抓取某个地方的评论数量.例如,Pike's Landing 餐厅(见下面的谷歌地图 URL)有 162 条评论.我想在 python 中提取这个数字. 网址:https://www.google.com/maps?cid=15423079754231040967 我不是非常精通HTML,但是从互联网上的一些基本示例中我编写了以下代码,但是在运行
..
我在 python scrapy 中编写了一个非常小的脚本来解析在来自黄页网站的多个页面上显示的姓名、街道和电话号码.当我运行我的脚本时,我发现它运行顺利.但是,我遇到的唯一问题是在 csv 输出中抓取数据的方式.它始终是两行之间的线(行)间隙.我的意思是:数据每隔一行打印一次.看到下面的图片你就会明白我的意思.如果不是scrapy,我本可以使用[newline=''].但是,不幸的是,我在这里完
..
我正在抓取用 aspx 构建的马德里议会网站,但我不知道如何模拟点击链接以获取相应的政治人物.我试过这个: 导入scrapy类 AsambleaMadrid(scrapy.Spider):name = "Asamblea_Madrid"start_urls = ['http://www.asambleamadrid.es/ES/QueEsLaAsamblea/ComposiciondelaAsa
..
我从阿里巴巴网站抓取数据的代码: 导入scrapy类 IndiamartSpider(scrapy.Spider):名称 = 'alibot'allowed_domains = ['alibaba.com']start_urls = ['https://www.alibaba.com/showroom/acrylic-wine-box_4.html']定义解析(自我,响应):Title = re
..
我在 python 脚本中运行 scrapy def setup_crawler(domain):dispatcher.connect(stop_reactor, 信号=signals.spider_closed)蜘蛛 = ArgosSpider(域=域)设置 = get_project_settings()爬虫 = 爬虫(设置)crawler.configure()crawler.crawl(
..
我使用 Python Selenium 和 Scrapy 来抓取网站. 但是我的脚本太慢了, 抓取 1 页(以 1 页/分钟的速度) 我使用 CSS SELECTOR 而不是 XPATH 来优化时间. 我改变了中间件 'tutorial.middlewares.MyCustomDownloaderMiddleware':543, Selenium 是不是太慢了,还是我应该在设置中更改一
..
我正在尝试抓取一个需要用户输入搜索值和验证码的网站.我有一个用于验证码的光学字符识别 (OCR) 程序,大约 33% 的时间成功.由于验证码始终是字母文本,如果 OCR 函数返回非字母字符,我想重新加载验证码.一旦我有一个文本“单词",我想提交搜索表单. 结果返回到同一页面,表单已准备好进行新的搜索和新的验证码.所以我需要冲洗并重复,直到我用尽我的搜索词. 这是顶级算法: 初始加
..
如何使用 Scrapy 抓取返回 JSON 的 Web 请求?例如,JSON 将如下所示: {"firstName": "约翰","lastName": "史密斯",“年龄":25,“地址": {"streetAddress": "21 2nd Street","city": "纽约","state": "纽约",“邮政编码":“10021"},“电话号码": [{"类型": "家",“号码":
..
我正在浏览一组页面,我不确定有多少页面,但当前页面由 url 中的一个简单数字表示(例如“http://www.website.com/page/1") 我想在scrapy中使用for循环来增加页面的当前猜测并在达到404时停止.我知道从请求返回的响应包含此信息,但我不确定如何自动从请求中获得响应. 关于如何做到这一点的任何想法? 目前我的代码是这样的: def start_r
..
我在scrapy中创建了一个脚本来解析start_urls中列出的不同站点的标题.脚本完美地完成了它的工作. 我现在想做的是让我的脚本在解析了两个 url 后停止,无论有多少个 url. 到目前为止我已经尝试过: 导入scrapy从 scrapy.crawler 导入 CrawlerProcess类 TitleSpider(scrapy.Spider):name = "title_b
..
我希望在呈现 HTML 后让网站上的所有文本都可见.我正在使用 Scrapy 框架在 Python 中工作.使用 xpath('//body//text()') 我能够得到它,但是使用 HTML 标签,我只想要文本.有什么解决办法吗? 解决方案 最简单的选择是 extract //body//text() 和 join 找到的所有内容: ''.join(sel.select("//bod
..
我正在练习 'Web Scraping with Python' 中的代码,但我一直遇到这个证书问题: from urllib.request import urlopen从 bs4 导入 BeautifulSoup进口重新页数 = 设置()def getLinks(pageUrl):全局页面html = urlopen("http://en.wikipedia.org"+pageUrl)bsO
..
我有一个爬虫爬虫,它使用在 Docker localhost:8050 上运行的飞溅来在爬取之前呈现 javascript.我正在尝试在 heroku 上运行它,但不知道如何配置 heroku 以在运行我的网站之前启动 docker 以运行 splash:scrapy crawl abc dyno.非常感谢任何指南! 解决方案 据我所知,您正在期待: 通过 Docker 容器在 He
..
我对 cookie 如何与 Scrapy 一起工作以及您如何管理这些 cookie 感到有些困惑. 这基本上是我正在尝试做的事情的简化版本: 网站的运作方式: 当您访问该网站时,您会获得一个会话 cookie. 当您进行搜索时,网站会记住您搜索的内容,因此当您执行诸如转到下一页结果之类的操作时,它会知道它正在处理的搜索. 我的脚本: 我的蜘蛛的起始网址为 sea
..