我已经为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)
两大问题:
该属性称为^{} ,而不是
rule
:^{} 应该是一个列表:
此外,还需要按照Paul在评论中的建议调整正则表达式。你知道吗
相关问题 更多 >
编程相关推荐