爬虫程序返回空结果

2024-04-19 08:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经为this page构建了(在stackoverflow的帮助下)爬虫程序,但是结果是空的。虽然单页蜘蛛的工作和刮所有必需的项目,为下一页的爬虫没有。我不明白什么可能的问题在这里。你知道吗

这是爬虫程序:

from scrapy.item import Item, Field
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.selector import Selector
import re
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from urlparse import urljoin


from mymobile.items import MymobileItem


class MmobySpider(CrawlSpider):
    name = "mmoby2" 
    allowed_domains = "http://mymobile.ge"
    start_urls = [
        "http://mymobile.ge/new/v2.php?cat=69"
    ]

    rule = (Rule(SgmlLinkExtractor(allow=("new/v2.php?cat=69&pnum=\d*", ))
        , callback="parse_items", follow=True),)

    def parse_items(self, response):
        sel = Selector(response)
        titles = sel.xpath('//table[@width="1000"]//td/table[@class="probg"]')
        items = []
        for t in titles:
            url = sel.xpath('tr//a/@href').extract()
            item = MymobileItem()
            item["brand"] = t.xpath('tr[2]/td/text()').re('^([\w\-]+)')
            item["model"] = t.xpath('tr[2]/td/text()').re('\s+(.*)$')
            item["price"] = t.xpath('tr[3]/td//text()').re('^([0-9\.]+)')
            item["url"] = urljoin("http://mymobile.ge/new", url[0])

            items.append(item)

        return(items)   

Tags: fromimportrehttpnewitemsitemxpath
1条回答
网友
1楼 · 发布于 2024-04-19 08:29:21

两大问题:

  • 该属性称为^{},而不是rule

    rules = (Rule(SgmlLinkExtractor(allow=("new/v2.php?cat=69&pnum=\d*", )), 
                  callback="parse_items", 
                  follow=True), )
    
  • ^{}应该是一个列表:

    allowed_domains = ["mymobile.ge"]
    

此外,还需要按照Paul在评论中的建议调整正则表达式。你知道吗

相关问题 更多 >