У меня есть код scrapy, который просматривает списки, связанные с данным заголовком, а затем загружает рейтинги других заголовков с первой страницы каждого списка. Он работает нормально.
Однако
Есть ли вероятность, что я могу заставить этот код войти в систему с моим логином imdb, а затем загрузить свои собственные оценки из этих списков?
Вот код:
class lisTopSpider(scrapy.Spider):
name= 'ImdbListsSpider'
allowed_domains = ['imdb.com']
titleLinkNum = 'tt0120852'
start_urls = [
'https://www.imdb.com/lists/'+titleLinkNum
]
# def ???(self, response):
# return scrapy.FormRequest.from_response(
# formdata={"username": "example@gmail.com","password":"example",}
# callback=self.parse)
#lists related to given title
def parse(self, response):
listsLinks = response.xpath('//div[2]/strong')
for link in listsLinks:
list_url = response.urljoin(link.xpath('.//a/@href').get())
yield scrapy.Request(list_url, callback=self.parse_list, meta={'list_url': list_url})
next_page_url = response.xpath('//a[@class="flat-button next-page "]/@href').get()
if next_page_url is not None:
next_page_url = response.urljoin(next_page_url)
yield scrapy.Request(next_page_url, callback=self.parse)
#Link of each list
def parse_list(self, response):
list_url = response.meta['list_url']
myRatings = response.xpath('//div[@class="ipl-rating-star small"]/span[2]/text()').getall()
yield{
'list': list_url,
'ratings': myRatings,
}