python-3.x - 如何获得 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)
解决方案
好吧,你正在改变index
,但没有使用它:你request_url
在这个过程中是一样的。如果此位是您希望更改页面的位
yield scrapy.FormRequest(request_url,formdata=data,callback=self.parse_fb)
比你request_url
在打电话之前必须改变。
推荐阅读
- javascript - Ag 网格阻止访问 React 状态变量的当前值
- or-tools - OR-Tools VRP 中是否可以有非无状态维度?
- node.js - Sequelize 查询错误?查找参数
- c++ - OpenGL 4.5:将纹理绑定读回片段着色器中设置的图像缓冲区时出错
- android - java.lang.IllegalStateException: 函数 =
,计数 = 4,索引 = 4 - javascript - 如何在页面中心放置 3 层元素(图像、图像、文本)?
- java - Papyrus 插件依赖项 - 找不到类
- python - 使用python将Json文件保存到指定目录
- javascript - 如何在 TypeScript 中定义过滤后的数组
- linux - 在 blobfuse(Azure 存储)中获取文件同步状态