我对编程非常陌生,所以如果这是一个菜鸟问题,我深表歉意。我是一名研究人员,并且一直在开发蜘蛛以使我能够抓取游戏论坛IGN的特定搜索结果。第一个蜘蛛网收集搜索结果中的每个条目以及URL,然后第二个蜘蛛网对内容的每个URL进行爬网。
问题是IGN将与特定帖子相关的URL重定向到一个新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(),
}