आप वास्तव में क्या करना चाहिए के रूप में @warwaruk संकेत दिया, नीचे एक क्रॉल मकड़ी के लिए मेरे उदाहरण विस्तार है:
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):
(...)
यह निम्न लॉग उत्पन्न करनी चाहिए आपके टर्मिनल में:
(...)
[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/)
(...)
बेसस्पीडर के साथ समान कार्य करेगा। अंत में start_requests विधि बेसस्पीडर विधि है, जिससे क्रॉलस्पीडर से विरासत प्राप्त होती है। कुकीज़, कॉलबैक फ़ंक्शन, अनुरोध की प्राथमिकता आदि
:
Documentation जैसे और अधिक विकल्प अलग हेडर से अनुरोध में स्थापित किया जाना बताते हैं,