python爬虫,翻页问题
import requestsimport parsel
import re
import csv
f = open('zgdx','a',encoding='utf-8',newline='')
csv_writer = csv.DictWriter(f,fieldnames=['排名', '名称', '英文名', '标签', '省份', '类型', '总分', '学校水平', '网址说明'])
csv_writer.writeheader()
# csv.DictWriter.writeheader()
url = 'https://www.shanghairanking.cn/rankings/bcur/202111'
headers = {
"User-Agent": "Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 80.0.3987.122Safari / 537.40"
}# UA伪装
response = requests.get(url=url, headers=headers)
response.encoding='‘utf-8’'
selecetor = parsel.Selector(response.text)
lis = list(selecetor.css('.rk-table tbody tr'))
for li in lis:
Rank = li.css('td:nth-child(1) > div ::text').get().strip()
Name = li.css('.name-cn::text').get()
English_Name = li.css('.name-en::text').get()
Tag = li.css('td.align-left > div > div.univname > p::text').get()
Province = li.css('td:nth-child(3)::text').get().strip()
Type = li.css('td:nth-child(3)::text').get().strip()
total_score = li.css('td:nth-child(4)::text').get().strip()
school_level = li.css('td:nth-child(5)::text').get().strip()
href =r'https://www.shanghairanking.cn'+ li.css('.link-container a::attr(href)').get()
dic = {'排名': Rank,'名称':Name,'英文名':English_Name,
'标签':Tag,
'省份':Province,
'类型':Type,
'总分':total_score,
'学校水平':school_level,
'网址说明':href
}
csv_writer.writerow(dic)#写入文件中
print(dic)
爬取中国大学排名相关信息,网站是https://www.shanghairanking.cn/rankings/bcur/202111
不知道如何实现翻页,网址不会随页数发生改变,然后点击翻页的按钮之后也没有捕获到AJAX,能想到的办法只有使用selenium模拟浏览器,不知道有没有其它方法 https://www.shanghairanking.cn/_nuxt/static/1629372035/rankings/bcur/202111/payload.js
在这里面,从开发者工具里找这个文件,直接复制打开会乱码 南归 发表于 2021-8-25 09:21
https://www.shanghairanking.cn/_nuxt/static/1629372035/rankings/bcur/202111/payload.js
在这里面,从 ...
这样啊,谢谢了 其他的还不确定,首先请求方法就错了,这应该是 post 请求
翻页可能和这个请求里面的参数有关,但是具体是哪个参数我暂时也没搞明白
页:
[1]