0
여기에 20 개 시작 URL이 있습니다 내 거미Scrapy 만 긁힌 자국 최초의 4 개 시작하는 URL을
class Spider(scrapy.Spider):
name = "spider"
start_urls = []
with open("clause/clauses.txt") as f:
for line in f:
start_urls(line)
base_url = "<url>"
start_urls = [base_url + "-".join(url.split()) for url in start_url]
def start_requests(self):
self.log("start_urls - {}".format(self.start_urls))
for url in self.start_urls:
yield scrapy.Request(url, dont_filter=True, priority=2, callback=self.parse)
def parse(self, response):
text_items = response.css("some css").extract()
for text in text_items:
if text == "\n":
continue
yield Item({"text" : text})
yield response.follow(response.css("a::attr(href)").extract_first(), callback=self.parse)
이다, 그러나 필자는 첫 번째 4 개 URL이 실제로 호출되고 있으며 나머지는 지금까지 실행되지 않습니다 알았어. 이상적인 행동은 처음에는 20 개의 시작 URL을 모두 호출 한 다음 각각의 URL에서 다음 순서로 계속 호출하는 것입니다.
start_urls = [base_url + "-".join(url.split()) for url in start_url]
아마해야합니다 : 다음
start_urls
에
s
누락
start_urls = [base_url + "-".join(url.split()) for url in start_urls]
공지 사항 당신이 오타를 가지고있는 것처럼
거기를? clauses.txt 파일을 제공해 주시겠습니까? –
@XetRAFHan 예외 메시지가 없습니다. 절 파일에는 단어 목록이 있으며 기본 URL에 추가됩니다. 처음 4 개 요청 후에 다른 초기 요청을 처리하지 않습니다. – TheM00s3
'self.log ("start_urls - {}"형식 (self.start_urls))의 결과는 무엇입니까? – Umair