|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import requests
- import 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.122 Safari / 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模拟浏览器,不知道有没有其它方法
其他的还不确定,首先请求方法就错了,这应该是 post 请求
翻页可能和这个请求里面的参数有关,但是具体是哪个参数我暂时也没搞明白
|
|