-
大小: 22KB文件类型: .zip金币: 2下载: 1 次发布日期: 2021-07-05
- 语言: Python
- 标签: pythonAjax
资源简介
这个爬虫是通过分析Ajax 接口写成的Python爬虫。爬取的是2018年QS全球大学排名,文件中包含完整的Python爬虫代码和爬取下来的2018年QS全球大学排名。
代码片段和文件信息
# Ajax loading
import requests
import json
from pyquery import PyQuery as pq
# 分析Ajax接口得到url
url = ‘https://www.topuniversities.com/sites/default/files/qs-rankings-data/357051.txt?_=1525068930958‘
headers = {“User-Agent“: “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/66.0.3359.139 “
“Safari/537.36“}
def get_page(url):
try:
r = requests.get(url headers=headers)
if r.status_code == 200:
return r.json()
except requests.Connectionerror as e:
print(e)
def parser_page(json):
if json:
items = json.get(‘data‘)
for i in range(len(items)):
item = items[i]
qsrank = {}
if “=“ in item[‘rank_display‘]:
rk_str = str(item[‘rank_display‘]).split(‘=‘)[-1]
qsrank[‘rank_display‘] = rk_str
else:
qsrank[‘rank_display‘] = item[‘rank_display‘]
qsrank[‘title‘] = item[‘title‘]
qsrank[‘region‘] = item[‘region‘]
qsrank[‘score‘] = item[‘score‘]
qsrank[‘url‘] = item[‘url‘]
yield qsrank
def main():
json = get_page(url)
results = parser_page(json)
for result in results:
with open(‘/home/zhiying/文档/QSrank.txt‘ ‘a‘) as f:
f.write(result[‘rank_display‘] + ‘ ‘ + result[‘title‘] + ‘ ‘ + result[‘region‘] + ‘ ‘
+ result[‘score‘] + ‘ ‘ + ‘https://www.topuniversities.com‘ + result[‘url‘] + ‘\n‘)
f.close()
print(result)
if __name__ == ‘__main__‘:
print(‘开始获取!‘)
with open(‘/home/zhiying/文档/QSrank.txt‘ ‘a‘) as f:
f.write(‘排名‘ + ‘ ‘ + ‘大学名称‘ + ‘ ‘ + ‘所属国家或地区‘ + ‘ ‘ + ‘得分‘ + ‘ ‘ + ‘网址‘ + ‘\n‘)
f.close()
main()
print(‘QS大学排名获取成功!‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-30 12:44 分析Ajax接口获取QS排名的Python爬虫及QS排名文档\
文件 1912 2018-04-30 12:40 分析Ajax接口获取QS排名的Python爬虫及QS排名文档\qs_rank.py
文件 125213 2018-04-30 12:40 分析Ajax接口获取QS排名的Python爬虫及QS排名文档\QSrank.txt
- 上一篇:爬虫(爬取加分析)
- 下一篇:Python爬虫获取电子书资源实战
评论
共有 条评论