Bạn nên làm đúng như @warwaruk chỉ ra, dưới đây là ví dụ xây dựng của tôi cho một con nhện bò:
from scrapy.contrib.spiders import CrawlSpider
from scrapy.http import Request
class MySpider(CrawlSpider):
name = "myspider"
allowed_domains = ["example.com"]
start_urls = [
'http://example.com/foo'
'http://example.com/bar'
'http://example.com/baz'
]
rules = [(...)]
def start_requests(self):
requests = []
for item in start_urls:
requests.append(Request(url=item, headers={'Referer':'http://www.example.com/'}))
return requests
def parse_me(self, response):
(...)
này sẽ tạo ra các bản ghi sau trong nhà ga của bạn:
(...)
[myspider] DEBUG: Crawled (200) <GET http://example.com/foo> (referer: http://www.example.com/)
(...)
[myspider] DEBUG: Crawled (200) <GET http://example.com/bar> (referer: http://www.example.com/)
(...)
[myspider] DEBUG: Crawled (200) <GET http://example.com/baz> (referer: http://www.example.com/)
(...)
Sẽ hoạt động tương tự với BaseSpider. Trong phương thức start_requests kết thúc là phương thức BaseSpider, từ đó CrawlSpider kế thừa từ đó.
Documentation giải thích thêm tùy chọn được đặt trong Yêu cầu ngoài tiêu đề, chẳng hạn như: cookie, chức năng gọi lại, ưu tiên yêu cầu, v.v.