问题标签 [scrapy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 scrapy 的 XmlFeedSpider 解析 sitemap.xml 文件?
我正在尝试sitemap.xml
使用scrapy解析文件,站点地图文件类似于以下一个只有更多url
节点的文件。
我查看了相关的scrapy文档,并编写了以下代码片段以查看我是否以正确的方式进行操作(看来我没有^^):
但是当我运行蜘蛛时,我得到了这个错误:
我想我没有正确定义“默认”命名空间(http://www.sitemaps.org/schemas/sitemap/0.9),但我找不到如何做到这一点。
迭代url
节点然后能够从其子节点中提取所需信息的正确方法是什么?
回答:
不幸的是,我无法使用XMLFeedSpider
(这应该是解析 XML 的方式scrapy
),但由于 simplebias 的回答,我已经能够想出一种方法来实现这种“老派方式”。我想出了以下代码(这次有效!):
python - Scrapy XPath 选择器文本的 Unicode 和 UTF-8 编码问题
我正在使用 Scrapy 和 Python(作为 Django 项目的一部分)来抓取包含德语内容的网站。我已经libxml2
安装为 Scrapy 选择器的后端。
如果我通过选择器提取单词'Hüftsitz'
(这是它在网站上的显示方式),我会得到:u'H\ufffd\ufffdftsitz'
(Scrapy XPath 选择器返回 Unicode 字符串)。
如果我将其编码为UTF-8
,我得到:'H\xef\xbf\xbd\xef\xbf\xbdftsitz'
。如果我打印它,我会得到'H??ftsitz'
不正确的。我想知道为什么会发生这种情况。
网站character-set
上的设置为UTF-8
。我在sys.getdefaultencoding
设置为的 Python shell 上测试上述内容UTF-8
。使用将来自 XPath 选择器的数据写入具有UTF-8
字符集的 MySQL 数据库的 Django 应用程序,我看到了相同的行为。
我在这里忽略了一些明显的东西吗?任何线索或帮助将不胜感激。
python - 按照scrapy中的重定向链接
我该如何设置?我已经写了handle_httpstatus_list = [301, 302, 303],但是scrapy没有跟随新的链接,它刚刚开始保存页面的空文件。
PS 英语不是我的母语。请原谅我。
python - Scrapy - 解析页面以提取项目 - 然后跟踪并存储项目 url 内容
我有一个关于如何在scrapy中做这件事的问题。我有一个爬取列出项目页面的蜘蛛。每次找到包含项目的列表页面时,都会调用 parse_item() 回调来提取项目数据并生成项目。到目前为止一切顺利,一切正常。
但是每个项目,除其他数据外,还有一个 url,其中包含有关该项目的更多详细信息。我想跟踪该 url 并将获取的该项目 url 的内容存储在另一个项目字段 (url_contents) 中。
而且我不确定如何组织代码来实现这一点,因为两个链接(列表链接和一个特定的项目链接)的遵循方式不同,回调在不同的时间调用,但我必须在同一个项目处理中关联它们.
到目前为止,我的代码如下所示:
python - 将 Scrapy 与经过身份验证(登录)的用户会话一起使用
在Scrapy 文档中,有以下示例来说明如何在 Scrapy 中使用经过身份验证的会话:
我有这个工作,很好。但我的问题是continue scraping with authenticated session
:正如他们在最后一行的评论中所说,你必须做什么?
python - 在 Scrapy 中使用经过身份验证的会话进行爬网
在我之前的问题中,我对我的问题不是很具体(使用 Scrapy 的经过身份验证的会话进行抓取),希望能够从更一般的答案中推断出解决方案。我可能宁愿使用这个词crawling
。
所以,到目前为止,这是我的代码:
如您所见,我访问的第一个页面是登录页面。如果我还没有通过身份验证(在parse
函数中),我会调用我的自定义login
函数,该函数会发布到登录表单。然后,如果我通过了身份验证,我想继续爬取。
问题是parse
我试图覆盖以登录的功能,现在不再进行必要的调用来抓取任何其他页面(我假设)。而且我不确定如何保存我创建的项目。
以前有人做过这样的事情吗?(验证,然后爬行,使用 a CrawlSpider
)任何帮助将不胜感激。
python - Ruby 替代 Scrapy?
有哪些基于 Ruby 的工具可以帮助我实现类似于 Scrapy 为 python 所做的事情? http://doc.scrapy.org/intro/overview.html
linux - 我将如何调试执行脚本的 cron 作业,但脚本似乎没有完成?
我有一个scrape.sh
看起来像这样的 cron 工作:
当它执行时,文件 rage 确实被创建并从我的系统日志判断它确实以 root 身份运行,所以权限应该不是问题。
当我运行scrape.sh
它时,它按预期执行并将foosite.xml
文件放入../feeds
目录中,该目录存在并且在 cron 作业启动时为空。我能做些什么来解决这个问题?
python - 在 Google App Engine 上模拟浏览器
我想在谷歌应用引擎中使用 selenium 或 windmill 来抓取一个 JS 填充的网站。我知道风车是用 python 和 javascript 编写的。
这可能吗?如果是,如何插入库?
如果不是,您能否解释原因并提供替代方案?
谢谢。
更新
我搜索了一下,发现scrapy是纯python。
那会奏效吗?它处理javascript吗?
python - scrapy 关注大型 XML 提要链接
我正在使用带有 itertag 的 scrapy XMLFeedSpider 来循环超过 300 Megs XML 提要。
除了将这个大提要中的每个条目保存为一个项目之外,每个条目还有一些要抓取的进一步链接,这次是指向 html 页面的链接。
我知道 html 页面是使用 CrawlerSpider 爬行的,所以我试图找到一种方法来使用这种蜘蛛来跟踪来自大型 XML 提要的链接。
谢了,兄弟们