scrapy 采集列表页和内容页问题

2015-01-14 06:30:33 +08:00
 willme105

打算在列表页采集缩略图和标题,内容页采集分类和标签。
不过一直采集不成功。请问该如何写这个spider。

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector

from my.items import MyItem
import re
from scrapy.http import Request
from scrapy.selector import Selector
from scrapy.selector import HtmlXPathSelector

class MySpider(CrawlSpider):
name = 'xxx'
allowed_domains = ['xxxx.com']
start_urls = ['http://xxxxxx.com']

def parse(self, response):
    item = MyItem()
    sel = Selector(response)
    videos = sel.xpath('//ul[@class="listThumbs"]/li')
    for v in videos:
        item['img']=v.xpath('a[@class="thumb"]/img/@src').extract()[0]
        item['title'] = v.xpath('a[@class="title"]/text()').extract()[0]
        item['url'] = v.xpath('a[@class="thumb"]/@href').extract()[0]
        yield item
def parse_page(self,response):
    item=MyItem()
    hxs=Selector(response)
    cate=hxs.xpath('//div[@class="multiTag"]/ul/li')
    for c in cate:
        item['category']=c.xpath('a/text()').extract()[0]
        yield item
3815 次点击
所在节点    问与答
2 条回复
huangguoji
2015-01-14 10:16:23 +08:00
def parse(self, response):
item = MyItem()
sel = Selector(response)
videos = sel.xpath('//ul[@class="listThumbs"]/li')
for v in videos:
item['img']=v.xpath('a[@class="thumb"]/img/@src').extract()[0]
item['title'] = v.xpath('a[@class="title"]/text()').extract()[0]
item['url'] = v.xpath('a[@class="thumb"]/@href').extract()[0]
yield Request(item['url'],callback=self.parse_page,meta={"item":item})
def parse_page(self,response):
item= response.meta["item"]
hxs=Selector(response)
cate=hxs.xpath('//div[@class="multiTag"]/ul/li')
for c in cate:
item['category']=c.xpath('a/text()').extract()[0]
yield item
willme105
2015-01-19 04:03:23 +08:00
@huangguoji 这样做还是有问题,列表页显示的内容都一样,而且都是最后一条信息。但内容页获取的信息是对的。请问改怎么办

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/161953

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX