Как бороться с перенаправлениями в закладки на странице в Scrapy (ошибка 911) - PullRequest
0 голосов
/ 23 ноября 2018

Я очень новичок в программировании, поэтому извиняюсь, если это новичок.Я исследователь, и я строю пауков, чтобы позволить мне сканировать конкретные результаты поиска IGN, игрового форума.Первый паук собирает каждую запись в результатах поиска вместе с URL-адресами, а затем второй паук сканирует каждый из этих URL-адресов для содержимого.

Проблема заключается в том, что IGN перенаправляет URL-адреса, связанные с определенным сообщением, на новыйURL, который включает в себя #bookmark в конце адреса.Это позволяет посетителю страницы переходить непосредственно к соответствующему сообщению, но я хочу, чтобы мой паук переполз по всей цепочке.Кроме того, мой паук в результате ошибки (911) после перенаправления не возвращает данных.Единственные данные получены из любых результатов поиска, которые связаны непосредственно с темой, а не с сообщением.

Я абсолютно озадачен и смущен, поэтому любая помощь будет потрясающей!Оба паука прикреплены ниже.

Паук 1:

myURLs = [] baselineURL = "https://www.ign.com/boards/search/186716896/?q=broforce&o=date&page=" for counter in range (1,5):
    myURLs.append(baselineURL + str(counter))

class BroforceIGNScraper(scrapy.Spider):
    name = "foundation"
    start_urls = myURLs

    def parse(self,response):
        for post in response.css("div.main"):
            yield {
                'title': post.css("h3.title a::text").extract_first(),
                'author': post.css("div.meta a.username::text").extract_first(),
                'URL': post.css('h3 a').xpath('@href').extract_first(),
            }

Паук 2:

URLlist = []
baseURL = "https://www.ign.com/boards/"

import csv
with open('BroforceIGNbase.csv', 'r', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        URLlist.append(baseURL + row['URL'])

class BroforceIGNScraper(scrapy.Spider):
    name = "posts2"
    start_urls = URLlist

    # handle_httpstatus_list = [301]

    def parse(self,response):
        for post in response.css(".messageList"):
            yield {
                'URL': response.url,
                'content': post.css(".messageContent article").extract_first(),
                'commentauthor': post.css("div.messageMeta a::text").extract_first(),
                'commentDateTime': post.css('div.messageMeta a span.DateTime').xpath('@title').extract_first(),
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...