当前位置: 首页 > 面试题库 >

超链接和“筛选的异地请求”

白成济
2023-03-14
问题内容

我知道那里有几个相关的线程,它们对我有很大帮助,但是我仍然无法一路走下去。我到了运行代码不会导致错误的地步,但是我的csv文件中什么也没有。我有以下Scrapyspider,它从一个网页开始,然后跟随一个超链接,并抓取链接的页面:

from scrapy.http import Request
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item, Field

class bbrItem(Item):
    Year = Field()
    AppraisalDate = Field()
    PropertyValue = Field()
    LandValue = Field()
    Usage = Field()
    LandSize = Field()
    Address = Field()    

class spiderBBRTest(BaseSpider):
    name = 'spiderBBRTest'
    allowed_domains = ["http://boliga.dk"]
    start_urls = ['http://www.boliga.dk/bbr/resultater?sort=hus_nr_sort-a,etage-a,side-a&gade=Septembervej&hus_nr=29&ipostnr=2730']

    def parse2(self, response):        
        hxs = HtmlXPathSelector(response)
        bbrs2 = hxs.select("id('evaluationControl')/div[2]/div")
        bbrs = iter(bbrs2)
        next(bbrs)
        for bbr in bbrs:
            item = bbrItem()
            item['Year'] = bbr.select("table/tbody/tr[1]/td[2]/text()").extract()
            item['AppraisalDate'] = bbr.select("table/tbody/tr[2]/td[2]/text()").extract()
            item['PropertyValue'] = bbr.select("table/tbody/tr[3]/td[2]/text()").extract()
            item['LandValue'] = bbr.select("table/tbody/tr[4]/td[2]/text()").extract()
            item['Usage'] = bbr.select("table/tbody/tr[5]/td[2]/text()").extract()
            item['LandSize'] = bbr.select("table/tbody/tr[6]/td[2]/text()").extract()
            item['Address']  = response.meta['address']
            yield item

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        PartUrl = ''.join(hxs.select("id('searchresult')/tr/td[1]/a/@href").extract())
        url2 = ''.join(["http://www.boliga.dk", PartUrl])
        yield Request(url=url2, meta={'address': hxs.select("id('searchresult')/tr/td[1]/a[@href]/text()").extract()}, callback=self.parse2)

我正在尝试将结果导出到一个csv文件,但没有任何文件。但是,运行代码不会导致任何错误。我知道这是一个只有一个URL的简单示例,但这说明了我的问题。

我认为我的问题可能是我没有告诉Scrapy我要在Parse2方法中保存数据。

顺便说一句,我以 scrapy crawl spiderBBR -o scraped_data.csv -t csv


问题答案:

你需要修改自己的yield Request in parse以parse2用作其回调。

编辑:allowed_domains不应包含http前缀,例如:

allowed_domains = ["boliga.dk"]

尝试一下,看看你的spider是否仍然可以正常运行,而不是allowed_domains留空



 类似资料:
  • 我们与实体1和实体2有多对多的关系。 现在,当我们删除Entity2的一个元素时,实际上并不是从数据库中删除它,而是简单地将字段“isactive”设置为false。 在SQL中,这将转换为entity1表、entity2表和entity1TOentity2表。在SQL中,我们可以简单地进行一次更新, 在JPA中,我们可以将Entity1的所有元素作为对象加载,并对关系进行连接提取,然后在Java

  • 我正在使用多个页面,每个页面都有jQuery选项卡。假设Page1.html带有#tab1和#tab2,Page2.html带有#tab3和#tab4。我的代码存在以下问题: 1)在标签内容中,Page1.html#tab2有一个指向Page1.html#tab1.的超链接链接不起作用——当单击链接时,页面只是停留在#tab1上。但是,Page1上的菜单容器中的一个到#tab1的超链接确实有效。两

  • 行内式 格式为 [link text](URL 'title text')。 ① 普通链接: [Google](http://www.google.com/) Google ② 指向本地文件的链接: [icon.png](./images/icon.png) icon.png ③ 包含 'title' 的链接: [Google](http://www.google.com/ "Google")

  • 主要有以下几种方式: 行内超链接 语法`链接文字 <URL>`_ 分开的超链接 用到链接的地方`链接文字`_, 定义链接的地方 .. _链接文字: URL 链接到指定文档 下载链接 外链接 访问 我的博客 ,可以了解更多信息。 访问 我的博客,可以了解更多信息。 我的博客地址是: https://www.wenjiangs.com ,以了解更多信息。 这篇文章参考的是:reStructuredTe

  • 我试图为android用户设计一个网页,所以我想知道是否有一个超链接格式,可以像调用功能一样打开谷歌地图

  • 问题内容: Java中是否有一种优雅的流式处理方式,可以说“如果此Optional映射到具有计算值的另一个Optional,如果该值存在,则返回一个空的Optional”? 我想到了类似的东西: 但这是不可能的。 我想出的解决方案有些冗长,而不像流式: 问题答案: 您不需要以下子句:

  • 主要内容:创建超链接,示例类表示类似于JavaFX的网页上的锚链接的超链接。 上面的代码生成以下结果。 创建超链接 以下代码使用默认构造函数创建超链接对象。然后它设置一个作为文本标题,最后添加点击事件处理程序。 实例方法定义超链接的文本标题。超链接类扩展了类,可以为超链接设置字体和填充。 以下代码将图像添加到超链接控件。 示例 更改超链接的字体,如下代码所示 - 上面的代码生成以下结果。

  • 超链接是万维网的基础,是它让整个Web成为一个整体,并获得生命。可以毫不夸张地说,整个Internet就是由超链接连接而成的。word也不例外,它也需要通过超链接实现各章节之间的互联,甚至链接到本文档之外的资源。 在前面,已经介绍了链接的动态样式和根据文件类型显示相应文件类型的图标,来提高网站的可访问性。本节主要介绍如何区分一个链接是指向本站点的另一个页面,还是指向另一个站点上的页面,并为指向站外