问题标签 [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.

0 投票
1 回答
2817 浏览

web-crawler - 网络爬虫更新策略

我想从某些网站抓取有用的资源(如背景图片..)。这不是一项艰巨的工作,尤其是在诸如scrapy之类的出色项目的帮助下。

这里的问题是我不仅只想爬一次这个网站。我还想保持我的爬网长时间运行并爬网更新的资源。所以我想知道网络爬虫有什么好的策略来获取更新的页面吗?

这是我想到的一个粗略的算法。我将爬行过程分成几轮。每轮 URL 存储库都会为爬虫提供一定数量(如 10000)的 URL 进行爬取。然后下一轮。详细步骤如下:

  1. 爬虫将起始 URL 添加到 URL 存储库
  2. 爬虫向 URL 存储库请求最多 N 个 URL 进行爬取
  3. 爬虫获取 URL,并更新 URL 存储库中的某些信息,例如页面内容、获取时间以及内容是否已更改。
  4. 回到第 2 步

为了进一步说明,我仍然需要解决以下问题:如何确定网页的“刷新性”,即表示该网页已更新的概率?

由于这是一个悬而未决的问题,希望它会在这里带来一些富有成果的讨论。

0 投票
2 回答
1183 浏览

python - 从可能使用会话 ID 的安全 URL 抓取页面

如何抓取这样的页面:https ://www.procom.ca/JobList.aspx?keywords=&Cities=&reference=&JobType=0

它是安全的,并且看起来需要推荐人。我无法使用 wget 或 httplib2 得到任何东西。

如果你浏览这个页面,你会得到一个列表,它可以在浏览器上运行,但不能在命令行上运行。 https://www.procom.ca/jobsearch.aspx

我对命令行获取感兴趣。

0 投票
2 回答
1286 浏览

app-store - iTunes AppStore 的 Scrapy 问题

我正在使用 Scrapy 从 iTunes 的 AppStore 数据库中获取一些数据。我从这个应用程序列表开始:http: //itunes.apple.com/us/genre/mobile-software-applications/id36 ?mt=8

在以下代码中,我使用了针对美国商店中所有应用程序的最简单的正则表达式。

当我运行它时,我收到以下信息:

如您所见,当它开始抓取第一页时,它会显示:“过滤到 'itunes.apple.com' 的异地请求”。然后蜘蛛停止..它还返回此消息:

回溯(最后一次调用):文件“/usr/lib/python2.5/cookielib.py”,第 1575 行,在 make_cookies parse_ns_headers(ns_hdrs),请求)文件“/usr/lib/python2.5/cookielib.py ",第 1532 行,在 _cookies_from_attrs_set cookie = self._cookie_from_cookie_tuple(tup, request) 文件 "/usr/lib/python2.5/cookielib.py",第 1451 行,在 _cookie_from_cookie_tuple 中,如果版本不是无:version = int(version) ValueError: int() 以 10 为底的无效文字:'"1"'

我在其他网站上使用了相同的脚本,我没有这个问题。

有什么建议吗? 

0 投票
1 回答
1111 浏览

python - scrapy - python 问题

也许不是正确的发布位置。不过,我还是要试试!

我有几个我创建的测试 python 解析脚本。它们足以让我测试我正在做的事情。

但是,我最近遇到了用于网络抓取的 python 框架 Scrapy。我的应用程序在分布式进程中运行,跨越多个服务器的测试平台。我试图了解scrapy,看看它是否比我正在做的事情更有好处。

所以,如果可能的话,我真的很想和一些扎根/或使用scrapy的人交谈。

0 投票
3 回答
2050 浏览

python - 使用 Scrapy 创建蜘蛛,蜘蛛生成错误

我刚刚在 Windows 32 上下载了 Scrapy(网络爬虫),并且刚刚使用 dos 中的“scrapy-ctl.py startproject dmoz”命令创建了一个新项目文件夹。然后我继续使用以下命令创建了第一个蜘蛛:

scrapy-ctl.py genspider myspider myspdier-domain.com

但它不起作用并返回错误:

Error running: scrapy-ctl.py genspider, Cannot find project settings module in python path: scrapy_settings.

我知道我的路径设置正确(到 python26/scripts),但我很难弄清楚问题是什么。我对scrapy和python都是新手,所以我很有可能没有做一些重要的事情。

另外,我一直在使用 eclipse 和 Pydev 插件来编辑代码,如果这可能会导致一些问题。

0 投票
1 回答
2895 浏览

python - Scrapy找不到蜘蛛错误

我一直在尝试让一个简单的蜘蛛与scrapy一起运行,但不断收到错误消息:

Could not find spider for domain:stackexchange.com

当我使用表达式运行代码时scrapy-ctl.py crawl stackexchange.com。蜘蛛如下:

另一个人几个月前发布了几乎完全相同的问题,但没有说明他们是如何解决的, Scrapy spider 无法正常工作弄清楚为什么它不起作用。

当我在 Eclipse 中运行此代码时,出现错误

Traceback (most recent call last): File "D:\Python Documents\dmoz\stackexchange\stackexchange\spiders\stackexchange_spider.py", line 1, in <module> from scrapy.spider import BaseSpider ImportError: No module named scrapy.spider

我无法弄清楚为什么它没有找到基本的 Spider 模块。我的蜘蛛必须保存在脚本目录中吗?

0 投票
3 回答
2949 浏览

python - 使用 XPath 和 Python (html) 提取的额外字符

我一直在使用 XPath 和 scrapy 从在线的 html 标签中提取文本,但是当我这样做时,我会附加额外的字符。一个示例是尝试从<td>标签中提取数字,例如“204”并获取[u'204']. 在某些情况下,情况要糟糕得多。例如尝试提取“1 - Mathoverflow”而不是获取[u'\r\n\t\t 1 \u2013 MathOverflow\r\n\t\t ']. 有没有办法防止这种情况发生,或者修剪字符串以使多余的字符不是字符串的一部分?(使用项目来存储数据)。看起来它与格式化有关,那么我如何让 xpath 不拾取那些东西呢?

0 投票
4 回答
5479 浏览

python - Scrapy - 关注 RSS 链接

我想知道是否有人曾尝试使用 SgmlLinkExtractor/CrawlSpider 提取/关注 RSS 项目链接。我无法让它工作...

我正在使用以下规则:

(记住 rss 链接位于链接标签中)。

我不确定如何告诉 SgmlLinkExtractor 提取链接的 text() 而不是搜索属性...

欢迎任何帮助,在此先感谢

0 投票
2 回答
2081 浏览

php - 编写一个程序来抓取论坛

我需要编写一个程序来抓取论坛。

我应该使用 Scrapy 框架在 Python 中编写程序还是应该使用 Php cURL?还有一个相当于 Scrapy 的 Php 吗?

谢谢

0 投票
3 回答
636 浏览

python - 使用 Python 模拟浏览器资源扩展行为

我正在寻找一种模拟浏览器资源扩展行为的方法。

我试图解决的流程如下:

  • 访问初始 URL(例如http://example.dmn/index.htm
  • 解析收到的 html 响应(例如 index.htm)
  • 查找浏览器将作为索引解析的结果获取的资源,例如:
    • 图片
    • 闪光
    • 嵌入式视频/音频
    • 框架/iFrames
  • 为找到的每个新资源递归地重复该过程

我不希望跟随链接(href),只有在第一次访问页面时浏览器会自动获取的页面资源。

你对如何进行这个模拟有什么建议吗?

是否有任何 Python 项目/库可以提供帮助?

谢谢