首页 > 解决方案 > 如何获得 Scrapy 请求以转到下一页?

问题描述

我需要解析网页中每条评论的国家代码,然后将其存储在 json 文件中,但是当我尝试转到下一页时遇到问题。

我不确定我是否使用了正确的方式来发送请求。

这是我的代码:

index = 1
def parse_fb(self, response):

    data = response.body
    soup = BeautifulSoup(data, "html.parser")

    with open(ArticlesSpider.pro_id+'.json', 'a+') as f:
        user_country = soup.find_all('div', class_='user-country')
        for i in range(len(user_country)):
            code = str(user_country[i])
            code = code.split('">')
            code = str(code[2])
            code = code.split('</b>')
            code = code[0]
            json.dump(code, f)
            print(code)
    request_url='https://feedback.aliexpress.com/display/productEvaluation.htm'
    data = {
            'ownerMemberId': '',
            'memberType':'seller',
            'productId': str(ArticlesSpider.pro_id),
            'companyId': '',
            'evaStarFilterValue': 'all Stars',
            'evaSortValue': 'sortdefault@feedback',
            'page': str(index),
            'currentPage': '',
            'startValidDate': '',
            'i18n': 'false',
            'withPictures': 'false',
            'withPersonalInfo': 'false',
            'withAdditionalFeedback': 'false',
            'onlyFromMyCountry': 'false',
            'version': 'evaNlpV1_2',
            'isOpened': 'true',
            'translate':  'Y',
            'jumpToTop':'false',
            '${csrfToken.parameterName}': '${csrfToken.token}',
            }
    index += 1
    yield scrapy.FormRequest(request_url,formdata=data,callback=self.parse_fb)

标签: python-3.xscrapy

解决方案


好吧,你正在改变index,但没有使用它:你request_url在这个过程中是一样的。如果此位是您希望更改页面的位

yield scrapy.FormRequest(request_url,formdata=data,callback=self.parse_fb)

比你request_url在打电话之前必须改变。


推荐阅读