Làm cách nào để lặp qua các trang web bằng Scrapy? Tôi muốn trích xuất nội dung của tất cả các trang web khớp với http://www.saylor.org/site/syllabus.php?cid=NUMBER
, trong đó NUMBER từ 1 đến 400 hoặc hơn.Lặp lại thông qua các trang web bằng Python Scrapy
Tôi đã viết nhện này:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from syllabi.items import SyllabiItem
class SyllabiSpider(CrawlSpider):
name = 'saylor'
allowed_domains = ['saylor.org']
start_urls = ['http://www.saylor.org/site/syllabus.php?cid=']
rules = [Rule(SgmlLinkExtractor(allow=['\d+']), 'parse_syllabi')]
def parse_syllabi(self, response):
x = HtmlXPathSelector(response)
syllabi = SyllabiItem()
syllabi['url'] = response.url
syllabi['body'] = x.select("/html/body/text()").extract()
return syllabi
Nhưng nó không hoạt động. Tôi hiểu nó đang tìm kiếm các liên kết trong start_url đó, đó không thực sự là những gì tôi muốn nó làm. Tôi muốn lặp qua các trang web. Có lý?
Cảm ơn sự giúp đỡ.
Có thể xây dựng danh sách các URL mong muốn trước? ví dụ 'urls = [" example.com?cid={}".format(x) cho x trong phạm vi (1, 401)] '? Disclaimer: Tôi chưa bao giờ sử dụng Scrapy. – Kevin