#python-3.x #scrapy
#python-3.x #scrapy
Вопрос:
Я хотел перейти по ссылке в написанном мной выражении xpath, но я получаю это сообщение об ошибке. Как избежать этого и успешно перейти по ссылке.
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
class JobSpider(CrawlSpider):
name = 'job'
allowed_domains = ['www.irishjobs.ie']
user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
#start_urls = ['http://www.irishjobs.ie/ShowResults.aspx?Keywords=python amp;autosuggestEndpoint=/autosuggestamp;Location=0amp;Category=amp;Recruiter=Companyamp;Recruiter=Agencyamp;btnSubmit=Search/']
def start_requests(self):
yield scrapy.Request(url = "'http://www.irishjobs.ie/ShowResults.aspx?Keywords=python amp;autosuggestEndpoint=/autosuggestamp;Location=0amp;Category=amp;Recruiter=Companyamp;Recruiter=Agencyamp;btnSubmit=Search/", headers= {
'User-Agent': self.user_agent
})
rules = (
Rule(LinkExtractor(restrict_xpaths= "//div[@class='job-result-title']/h2/a"), callback='parse_item', follow=True),
)
def parse_item(self, response):
print(response.url)
Ответ №1:
В вашем коде простая опечатка. попробуйте это.
def start_requests(self):
yield scrapy.Request(url = "http://www.irishjobs.ie/ShowResults.aspx?Keywords=python amp;autosuggestEndpoint=/autosuggestamp;Location=0amp;Category=amp;Recruiter=Companyamp;Recruiter=Agencyamp;btnSubmit=Search/", headers= {
'User-Agent': self.user_agent
})
в URL есть дополнительная '
кавычка, удалите '
ее. Тогда spider в порядке.
yield scrapy.Request(url = "'http://www.irishjobs.ie/ShowResults.aspx?
^^^
Keywords=python amp;autosuggestEndpoint=/autosuggestamp;Location=0amp;Category=amp;Recruiter=Companyamp;Recruiter=Agencyamp;btnSubmit=Search/"