- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想解析一个股票列表,所以我试图格式化我的 start_urls
的末尾列表,这样我就可以只添加符号而不是整个 url。
蜘蛛类 start_urls
里面stock_list
方法:
class MySpider(BaseSpider):
symbols = ["SCMP"]
name = "dozen"
allowed_domains = ["yahoo.com"]
def stock_list(stock):
start_urls = []
for symb in symbols:
start_urls.append("http://finance.yahoo.com/q/is?s={}&annual".format(symb))
return start_urls
def parse(self, response):
hxs = HtmlXPathSelector(response)
revenue = hxs.select('//td[@align="right"]')
items = []
for rev in revenue:
item = DozenItem()
item["Revenue"] = rev.xpath("./strong/text()").extract()
items.append(item)
return items[0:3]
如果我去掉 stock_list
,一切都会正常运行做简单的start_urls
正常,但目前不会导出空文件。
此外,我是否应该尝试 sys.arv
这样我就可以在运行 $ scrapy crawl dozen -o items.csv
时在命令行中输入股票代码作为参数。 ???
通常 shell 会打印出 2015-04-25 14:50:57-0400 [dozen] DEBUG: Crawled (200) <GET http://finance.yahoo.com/q/is?s=SCMP+Income+Statement&annual>
在 LOG/DEBUG 打印输出中,但是目前不包括它,这意味着它没有正确格式化 start_urls
最佳答案
实现动态启动 URL 的正确方法是使用 start_request()
。
当您有起始 URL 的静态列表时,使用 start_urls
是首选做法。
start_requests() This method must return an iterable with the first Requests to crawl for this spider.
例子:
class MySpider(BaseSpider):
name = "dozen"
allowed_domains = ["yahoo.com"]
stock = ["SCMP", "APPL", "GOOG"]
def start_requests(self):
BASE_URL = "http://finance.yahoo.com/q/is?s={}"
yield scrapy.Request(url=BASE_URL.format(s)) for s in self.stock
def parse(self, response):
# parse the responses here
pass
通过这种方式,您还可以使用生成器而不是预先生成的列表,这样在stock
较大的情况下可以更好地扩展。
关于Python:Scrapy start_urls 列表能够处理 .format()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29869581/
尝试产生“数字”或者可能获取start_url,然后解析start_url以获取数字: class EbaypriceSpider(Spider): name = "ebayprice"
我正在创建一个与服务人员脱机工作的 PWA。 现在它可以正常工作,但 Lighthouse Audit 存在问题。 当我运行 Lighthouse 时,在 PWA 部分我遇到了这个问题: 离线时 st
我正在尝试抓取网址并检索每个网址的h1。 url 存储在文本文件中。代码是: class MySpider(CrawlSpider): name = "sitemaplocation"
The script (下)来自 this教程包含两个 start_urls。 from scrapy.spider import Spider from scrapy.selector import
我一直在使用 Google 的 workbox library现在有一段时间,在非常基本的水平上。大部分效果很好,但由于某些原因,我的 manifest.json 中的 start_url 未在初始页
我刚刚将 scrapy 更新到 0.22,现在面临一些问题。 我使用的是基本的 Spider,只是想请求一个 start_url 并在 parse(self,response) 函数中查看结果。 cl
我想知道我可以分配给蜘蛛的 start_urls 的数量是否有限制?据我搜索,似乎没有关于列表限制的文档。 目前我已经设置了我的爬虫,以便从 csv 文件中读取 start_urls 列表。 url
我有一个工作的 scrapy 蜘蛛,我可以通过一个单独的脚本运行它,然后是 example here .我还为我的脚本创建了一个 wxPython GUI,它仅包含一个多行 TextCtrl,供用户输
我是 scrapy 和 python 的新手。我写了一个蜘蛛,它可以很好地处理初始化的 start_urls 值。 如果我在 Init 中的代码中放入文字,它也可以正常工作 { self.start_
我是 Python 和 Scrapy 新手。我希望 item['Source_Website'] 成为我正在抓取的网址。我怎样才能实现这个目标? 我尝试了 item['Source_Website']
我使用 scrapy 抓取 1000 个 url 并将抓取的项目存储在 mongodb 中。我想知道为每个网址找到了多少项目。从 scrapy stats 我可以看到 'item_scraped_co
我正在以与其他蜘蛛相同的结构运行我的蜘蛛,但对于这个特定的网站和这个特定的蜘蛛,它会在第一次请求启动 url 后关闭。可能是什么问题? 终端输出: ... 2022-04-03 17:42:34 [s
虽然我的简单代码根据 the official document 看起来不错,它会生成意外重复的结果,例如: 设置 3 个网址时为 9 行/结果 设置 2 个网址时为 4 行/结果 当我只设置 1 个
我想解析一个股票列表,所以我试图格式化我的 start_urls 的末尾列表,这样我就可以只添加符号而不是整个 url。 蜘蛛类 start_urls里面stock_list方法: class MyS
我有一个 ~2211 开始 url 的列表,scrapy 抓取了一些,但不是全部。当我将 start_url 设置为单个 url 时,它会抓取 URL,如果我在一个大列表中有 URL,scrapy 不
所以我正在使用 scrapy 库开发一个 scraper,为了便于使用,我想让它从 .csv 文件中获取它的起始 url。我已经对该主题进行了一些研究,我相信它可以正确地从 .csv 中获取 url,
背景(可略过): 我目前正在运行两个不同的 scrapy 爬虫。 第一个检索有关产品 x 的信息,第二个检索有关产品 x 的其他信息,这些信息是在第一个机器人抓取的 url 上找到的。 我的管道将每个
我已经从蜘蛛中抓取了项目,我正在编写另一个蜘蛛,它使用搜索引擎来填充一些缺失的数据。我想逐行更新第一个蜘蛛的项目。 但是,我不知道如何从 __init__ 方法传递当前行或 start_url。 我知
我正在创建 PWA 并偶然发现 manifest.json 文件中的“start_url”存在问题。我试图变成 PWA 的网站取决于查询参数,而 "start_url":"/"不会获取查询参数。 我尝
有没有办法在网络应用程序 list 中设置哈希值?类似的东西: "start_url": "/#/admin", 我试过了,但是不行。 有什么想法吗? 最佳答案 试试这个:"start_url": "
我是一名优秀的程序员,十分优秀!