В настоящее время я создаю веб-скребок для Linkedin, но LinkedIn блокирует мой бот для очистки данных, потому что я не вошел ни в какую учетную запись.Моя цель в основном состоит в том, чтобы отсканировать любое предложение работы, сделанное компаниями, но мой вопрос в первую очередь касается регистрации в коде.
Я на Python 3.X, используя scrapy и formrequest.
Поэтому я искал в Интернете решение, которое, как мне показалось, требовал пакет formrequest.Тем не менее, после нескольких попыток он все еще не работает.
import scrapy
from scrapy.http import FormRequest
from scrapy.utils.response import open_in_browser
from ..items import LinkedinItem
class LinkedinSpiderSpider(scrapy.Spider):
name = 'linkedin_spider'
start_urls = ['https://www.linkedin.com/login']
def parse(self, response):
token = response.css('form input::attr(value)').extract_first()
print(token)
return FormRequest.from_response(response, formdata={
'csrf_token': token,
'username': 'XXX@gmail.com',
'password': 'XXX'
}, callback=self.start_scraping)
def start_scraping(self, response):
open_in_browser(response)
items = LinkedinItem()
all_div_quotes = response.css('div.quote')
for quotes in all_div_quotes:
Job_offers = response.css('.disabled').css('::text').extract()
company = response.css('.job-card-search__company-name-link').css('::text').extract()
information = response.css('.job-card-search__description-snippet').css('::text').extract()
items['Job_offers'] = Job_offers
items['company'] = company
items['information'] = information
yield items
Я добавил пакет open_in_browser, чтобы проверить, правильно ли я вошел в систему и браузер открывается на экране входа в систему и он написан: пожалуйста, введите адрес электронной почтыадрес
Я ожидаю, что мой браузер откроет домашнюю страницу с моей учетной записью.
Спасибо