为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Twitter 抓取中正确获取 min_position

无法在 Twitter 抓取中正确获取 min_position

ibeautiful 2021-08-14 21:22:52
我正在尝试抓取推特。请输入 search.twitter.com 并将 Comorbidity 放在搜索表单中。我可以正确获取第一页,向下滚动查看更多推文时可以看到,可以从 min_position 参数获取下一页。但是当使用下一页发送请求时,我无法获得正确的内容。这是我的一些代码。headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'}def start_requests(self):    yield Request(url=self.start_urls[0], callback=self.parse_search_page)def parse_search_page(self, response):    keyword = 'Comorbidity'    search_url = self.search_url.format(keyword=keyword)    yield Request(url=search_url, callback=self.parse_twitter_page, headers=self.headers)def parse_twitter_page(self, response):    next_page = None    if self.current_page == 0:        posts = response.xpath('//li[@data-item-type="tweet"]').extract()        min_position = re.search('data-min-position="(.*?)"', response.body)        if min_position:            min_position = min_position.group(1)        next_page = self.next_page_url.format(position=min_position.replace('cm+', 'cm%2B').replace('==', '%3D%3D'))        self.current_page = 1    else:        json_data = json.loads(response.body)        min_position = json_data.get('min_position')    if next_page:        yield scrapy.http.Request(            url=self.next_page_url,            callback=self.parse_twitter_page,            headers=self.headers,        )如何获得正确的 min_position?
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

我认为您在 parse_twitter_page 方法中犯了错误。


if next_page:

    yield scrapy.http.Request(

        url=next_page,

        callback=self.parse_twitter_page,

        headers=self.headers,

    )

它不应该是 self.next_page_url。我从 self.next_page_url 更改为 next_page 我希望这会起作用。


查看完整回答
反对 回复 2021-08-14
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号