【发布时间】:2014-03-30 16:17:53
【问题描述】:
我试图了解 Scrapy 的工作原理,但不知道如何让它爬行。
我要抓取的网站有一个页面http://www.example.com/Jason,其中包含http://www.example.com/Jason:Aron、http://www.example.com/Jason:Dan_De等格式的链接。
我设法爬取了像http://www.example.com/Jason:Aron 这样的页面上的文本,但我无法从http://www.example.com/Jason 开始爬取所有链接到那里的页面。
这是我的蜘蛛:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector
from tutorial.items import Item
class Spider(CrawlSpider):
name = "text"
allowed_domains = ["example.com"]
start_urls = [
"http://www.example.com/Jason",
"http://www.example.com/Jason:Aron",
]
rules = (Rule (SgmlLinkExtractor(allow=('Jason:*')), callback='parse'),)
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//div[@class="textbox"]')
items = []
for site in sites:
item = Item()
item['text'] = site.xpath('text()').extract()
items.append(item)
return items
感谢任何建议。
【问题讨论】:
-
注意
Jason:*是一个正则表达式(匹配Jason、Jason:、Jason::,...)。是你的意思吗?
标签: python web-scraping scrapy