用scrapy爬取一个页面里面的所有链接,但是我想获得的是爬取链接里面的内容应该如何做?以前用bs4做过成功了,但是我不知道scrapy如何进一步解析链接啊。
我的思路
解析rooturl获取url再次解析获取的url获得内容
用scrapy爬取一个页面里面的所有链接,但是我想获得的是爬取链接里面的内容应该如何做?以前用bs4做过成功了,但是我不知道scrapy如何进一步解析链接啊。
我的思路
解析rooturl获取url再次解析获取的url获得内容
请参考 http://scrapy.readthedocs.io/...
其实scrapy已经考虑到了楼主的需求,写好了crawlspider 你继承,配置下规则就行了
举个例子:
#encoding:utf8
import scrapy
from tutorial.items import TutorialItem
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
import re
rule = re.compile('(\\d{4}/\\d{2}/\\d{2})')
class TestSpider(CrawlSpider):
name = "test"
domain = 'https://www.engadget.com/'
allowed_domains = ['engadget.com']
start_urls = [
'https://www.engadget.com/',
]
rules = (
Rule(LinkExtractor( allow=('/\\d{4}/\\d{2}/\\d{2}.*') ),callback='parse_item'),
Rule( LinkExtractor() ),
)
def parse_item(self,response):
try:
self.logger.info('thr url is :%s', response.url)
item = TutorialItem()
item['title'] = response.xpath('/html/body/div[1]/div/div[2]/main/div[1]/div/div[2]/article/header/div/div/div[2]/h1/text()').extract_first()
yield item
except Exception, e:
print e
楼主想要的是这个吗
def parse(self):
# 获取所有的url,例如获取到urls中
for url in urls:
yield Request(url)
def nextParse(self):
"""迭代的url"""
...
参考一下,之前写过一个爬取汽车数据的