Python:Scrapy start_urls列表能够处理.format()吗?

查尔斯·沃森

我想解析一个股票清单,所以我试图格式化start_urls清单的末尾,这样我就可以添加符号而不是整个网址。

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

通常,shell2015-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

本杰明·罗威尔

我将使用for循环,如下所示:

class MySpider(BaseSpider):
    stock = ["SCMP", "APPL", "GOOG"]
    name =  "dozen"
    allowed_domains = ["yahoo.com"]
    def stock_list(stock):
        start_urls = []
        for i in stock:            
            start_urls.append("http://finance.yahoo.com/q/is?s={}".format(i))
        return start_urls
    start_urls = stock_list(stock)

然后像我在底部那样分配函数调用。


更新

使用Scrapy 0.24

# -*- coding: utf-8 -*-
import scrapy
from scrapy.selector import Selector

class MySpider(scrapy.Spider):

    symbols = ["SCMP"]
    name =  "yahoo"
    allowed_domains = ["yahoo.com"]

    def stock_list(symbols):
        start_urls = []
        for symb in symbols:
            start_urls.append("http://finance.yahoo.com/q/is?s={}&annual".format(symb))
        return start_urls
    start_urls = stock_list(symbols)

    def parse(self, response):
        revenue = Selector(response=response).xpath('//td[@align="right"]').extract()
        print(revenue)

您可能想要调整xpath以获得所需的确切内容。似乎正在撤回相当多的东西。但我已经对此进行了测试,并且抓取效果符合预期。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:Scrapy start_urls列表能够处理.format()吗?

来自分类Dev

Scrapy绕过start_urls

来自分类Dev

Python 抓取 start_urls

来自分类Dev

为scrapy的start_urls命名

来自分类Dev

在scrapy的spider的start_urls列表中给定的每个URL单独的输出文件

来自分类Dev

Scrapy:如何从设置文件设置scrapy start_urls?

来自分类Dev

如何在python scrapy中为不同的start_urls应用不同的规则?

来自分类Dev

如何在python scrapy中为不同的start_urls应用不同的规则?

来自分类Dev

Scrapy:多个“ start_urls”产生重复的结果

来自分类Dev

如何在scrapy spider的start_urls中发送发布数据

来自分类Dev

Scrapy无法访问start_urls:调试:已抓取(200)和错误

来自分类Dev

在python scrapy中处理分页

来自分类Dev

在python scrapy中处理分页

来自分类Dev

(Python) Scrapy - 如何抓取 JS 下拉列表?

来自分类Dev

处理后请求以使用scrapy python加载更多文章

来自分类Dev

处理后请求以使用scrapy python加载更多文章

来自分类Dev

Python Scrapy 使用输入处理器获取绝对 url

来自分类Dev

匿名函数能够处理removeEventListener吗?

来自分类Dev

从csv文件读取start_urls

来自分类Dev

CrawlSpider仅抓取start_urls

来自分类Dev

Python:Scrapy导出原始数据而不是仅导出text()吗?

来自分类Dev

Python:Scrapy导出原始数据,而不是仅导出text()吗?

来自分类Dev

Python string.format():将nans格式化为``某些文本''吗?

来自分类Dev

批处理文件 FOR /F 循环中的 git --format 字符串有问题吗?

来自分类Dev

我的程序需要能够处理SIGINT吗?

来自分类Dev

SQL Server Express 能够处理半 TB 的数据吗?

来自分类Dev

如何在 Python 中使用多处理来使用 Scrapy 抓取数百万个 url?

来自分类Dev

python scrapy spider:在每个start_url的parse()方法中传递其他信息

来自分类Dev

Scrapy does not crawl through data contained in start URLs

Related 相关文章

  1. 1

    Python:Scrapy start_urls列表能够处理.format()吗?

  2. 2

    Scrapy绕过start_urls

  3. 3

    Python 抓取 start_urls

  4. 4

    为scrapy的start_urls命名

  5. 5

    在scrapy的spider的start_urls列表中给定的每个URL单独的输出文件

  6. 6

    Scrapy:如何从设置文件设置scrapy start_urls?

  7. 7

    如何在python scrapy中为不同的start_urls应用不同的规则?

  8. 8

    如何在python scrapy中为不同的start_urls应用不同的规则?

  9. 9

    Scrapy:多个“ start_urls”产生重复的结果

  10. 10

    如何在scrapy spider的start_urls中发送发布数据

  11. 11

    Scrapy无法访问start_urls:调试:已抓取(200)和错误

  12. 12

    在python scrapy中处理分页

  13. 13

    在python scrapy中处理分页

  14. 14

    (Python) Scrapy - 如何抓取 JS 下拉列表?

  15. 15

    处理后请求以使用scrapy python加载更多文章

  16. 16

    处理后请求以使用scrapy python加载更多文章

  17. 17

    Python Scrapy 使用输入处理器获取绝对 url

  18. 18

    匿名函数能够处理removeEventListener吗?

  19. 19

    从csv文件读取start_urls

  20. 20

    CrawlSpider仅抓取start_urls

  21. 21

    Python:Scrapy导出原始数据而不是仅导出text()吗?

  22. 22

    Python:Scrapy导出原始数据,而不是仅导出text()吗?

  23. 23

    Python string.format():将nans格式化为``某些文本''吗?

  24. 24

    批处理文件 FOR /F 循环中的 git --format 字符串有问题吗?

  25. 25

    我的程序需要能够处理SIGINT吗?

  26. 26

    SQL Server Express 能够处理半 TB 的数据吗?

  27. 27

    如何在 Python 中使用多处理来使用 Scrapy 抓取数百万个 url?

  28. 28

    python scrapy spider:在每个start_url的parse()方法中传递其他信息

  29. 29

    Scrapy does not crawl through data contained in start URLs

热门标签

归档