• 大小: 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

评论

共有 条评论

相关资源