Scrapy:存储/删除当前的start_url?

臭气

背景(可以跳过):

我目前正在运行两个截然不同的抓取爬虫。

第一个检索有关产品x的信息,第二个检索有关在第一个机器人抓取的网址上找到的关于产品x的其他信息。

我的管道将每个产品的信息连接到多个文本文件中,其中每个产品的信息占用一行数据,并作为不同的文本文件分为多个类别。

每个机器人显然都保持信息完整性,因为一次一次解析所有信息(因此每个文本文件的信息与其他文本文件逐行对齐)。但是,我了解scrapy使用了动态爬网机制,该机制根据加载时间而不是start_url列表中的顺序对网站进行爬网。因此,第二个搜寻器的信息与第一个搜寻器的其他文本文件不一致。

一个简单的解决方法是,抓取两个机器人都找到的信息的“主键”(mysql fanboys)变体,从而可以通过按字母顺序对主键进行排序并由此对齐数据来帮助在表中对齐产品信息。手动。

但是,当前的项目使我在寻找主键方面处于困境。第二搜寻器使用唯一的有限信息来爬网网站,因此,我唯一将其发现链接回第一搜寻器的步骤就是使用第一搜寻器标识的网址并将其链接到第二搜寻器中相同的start_url。


问题:

有没有一种方法可以将在xhtmlselector的每次迭代中都被爬网的start_url分配给一个变量,然后可以将该变量推送到管道中,并在特定的url上爬网项/字段数据(在源代码中找不到该实例/实例的情况下) )?

这是我的代码:

    from scrapy.spider import BaseSpider
    from scrapy.selector import HtmlXPathSelector
    from Fleche_Noire.items import FlecheNoireItem
    import codecs

    class siteSpider(BaseSpider):
        name = "bbs"
        allowed_domains = ["http://www.samplewebsite.abc"]
        start_urls = [    
            'http://www.samplewebsite.abc/prod1',
            'http://www.samplewebsite.abc/prod2',
       ]



        def parse(self, response):
            hxs = HtmlXPathSelector(response)
            items = []
            item = FlecheNoireItem()
            item["brand"] = []
            item["age"] = []
            item["prodcode"] = hxs.select('//h1/text()').extract() or [' '] 
            item["description1"] = []
            item["description2"] = []
            item["product"] = []
            item["availability"] = []
            item["price"] = []
            item["URL"] = []
            item["imgurl"] = []
            items.append(item)
            return items

我希望能够将start_url作为项目存储,就像在页面上找到的h1文本一样。

谢谢!

盖·加弗里(Guy Gavriely)

您可以从中获取,也可以从中获取response.url重定向response.request.url,这意味着:

item["start_url"] = response.request.url

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scrapy:存储/删除当前的start_url?

来自分类Dev

Scrapy:为每个start_url动态生成规则

来自分类Dev

Scrapy Pipeline 为每个 start_url 更新 mysql

来自分类Dev

通过计算start_url调用次数来估算Scrapy进度

来自分类Dev

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

来自分类Dev

无法从 Scrapy Spider 导出数据,start_url 未定义

来自分类Dev

Web App清单:start_url中的哈希

来自分类Dev

单个start_url中的随机数

来自分类Dev

每个start_url已刮取多少个项目

来自分类Dev

每个start_url已刮取多少个项目

来自分类Dev

Web App清单:start_url中的哈希

来自分类Dev

我怎样才能使start_url能够从消息队列中使用呢?

来自分类Dev

Angular-Serviceworker:离线时,start_url不会以200响应

来自分类Dev

如果组件不是当前组件,如何删除本地存储 - angular

来自分类Dev

React:如何在 manifest.json 的 start_url 中将启动文件 index.html 更改为其他 html 页面

来自分类Dev

AngularJS:如何从window.history中删除当前视图URL?

来自分类Dev

当前URL添加和删除term-> slug

来自分类Dev

Firebase Cloud 函数使用 url 从存储中删除孤立图像

来自分类Dev

在Scrapy中覆盖parse_start_url()并将爬网深度限制为1

来自分类Dev

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

来自分类Dev

Google AMP - 将当前页面 URL 保存到本地存储

来自分类Dev

删除当前行 vba

来自分类Dev

Scrapy如何从httpcache中删除URL或防止添加到缓存

来自分类Dev

htaccess应该从当前URL中删除index.php,而是重定向到root

来自分类Dev

Scrapy绕过start_urls

来自分类Dev

Firebase:检查当前存储大小

来自分类Dev

Scrapy Python更改URL

来自分类Dev

获取当前值的URL?

来自分类Dev

TFS当前Sprint URL

Related 相关文章

  1. 1

    Scrapy:存储/删除当前的start_url?

  2. 2

    Scrapy:为每个start_url动态生成规则

  3. 3

    Scrapy Pipeline 为每个 start_url 更新 mysql

  4. 4

    通过计算start_url调用次数来估算Scrapy进度

  5. 5

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

  6. 6

    无法从 Scrapy Spider 导出数据,start_url 未定义

  7. 7

    Web App清单:start_url中的哈希

  8. 8

    单个start_url中的随机数

  9. 9

    每个start_url已刮取多少个项目

  10. 10

    每个start_url已刮取多少个项目

  11. 11

    Web App清单:start_url中的哈希

  12. 12

    我怎样才能使start_url能够从消息队列中使用呢?

  13. 13

    Angular-Serviceworker:离线时,start_url不会以200响应

  14. 14

    如果组件不是当前组件,如何删除本地存储 - angular

  15. 15

    React:如何在 manifest.json 的 start_url 中将启动文件 index.html 更改为其他 html 页面

  16. 16

    AngularJS:如何从window.history中删除当前视图URL?

  17. 17

    当前URL添加和删除term-> slug

  18. 18

    Firebase Cloud 函数使用 url 从存储中删除孤立图像

  19. 19

    在Scrapy中覆盖parse_start_url()并将爬网深度限制为1

  20. 20

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

  21. 21

    Google AMP - 将当前页面 URL 保存到本地存储

  22. 22

    删除当前行 vba

  23. 23

    Scrapy如何从httpcache中删除URL或防止添加到缓存

  24. 24

    htaccess应该从当前URL中删除index.php,而是重定向到root

  25. 25

    Scrapy绕过start_urls

  26. 26

    Firebase:检查当前存储大小

  27. 27

    Scrapy Python更改URL

  28. 28

    获取当前值的URL?

  29. 29

    TFS当前Sprint URL

热门标签

归档