Scrapy跟随链接以及编码错误

时间:2016-03-09 01:59:06

标签: python scrapy

我一直在尝试实现一个解析函数。

基本上我通过scrapy shell发现了

response.xpath('//*[@id="PagerAfter"]/a[last()]/@href')).extract()[0]

给我的网址指示我到下一页。所以我尝试按照next_page的说明操作。我看了一下堆栈溢出,似乎每个人都使用规则(LinkExtractor ......我不相信我需要使用它。我很确定我做的完全错了。我原来有一个for循环在start_urls中添加了我想要访问的每个链接,因为我知道它全部采用* p1.html,* p2.html等形式,但我想让它变得更聪明。

 def parse(self, response):
    items = []

    for sel in response.xpath('//div[@class="Message"]'):
        itemx = mydata()
        itemx['information'] = sel.extract()
        items.append(itemx)
        with open('log.txt', 'a') as f:
            f.write('\ninformation: ' + itemx.get('information')

    #URL of next page response.xpath('//*[@id="PagerAfter"]/a[last()]/@href').extract()[0]

    next_page = (response.xpath('//*[@id="PagerAfter"]/a[last()]/@href'))

    if (response.url != response.xpath('//*[@id="PagerAfter"]/a[last()]/@href')):
        if next_page:
            yield Request(response.xpath('//*[@id="PagerAfter"]/a[last()]/@href')[0], self.parse)


    return items

但不起作用我得到了

    next_page = (response.xpath('//*[@id="PagerAfter"]/a[last()]/@href'))
        ^SyntaxError: invalid syntax

错误。另外我知道屈服请求部分是错误的。我想以递归方式调用并递归地将每个页面的每个scrape添加到列表项中。

谢谢!

0 个答案:

没有答案