栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用scrapy框架爬取最好大学排名

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用scrapy框架爬取最好大学排名

爬取链接:https://www.shanghairanking.cn/rankings/bcur/2021
这里偷个懒,直接在之前创建好的项目文件里创建爬虫文件,创建命令“scrapy genspider daxue daxue.com”,创建了daxue.py文件

如果不知道如何创建项目文件的话,可以参考这篇文章Scrapy爬虫框架
爬虫文件的代码如下:

import scrapy
from baiduSpider.items import BaiduspiderItem

class DaxueSpider(scrapy.Spider):
    name = 'daxue'
    allowed_domains = ['daxue.com']
    start_urls = ['https://www.shanghairanking.cn/rankings/bcur/2021']   #爬取链接


    def parse(self, response):   #解析爬取到页面的方法
        for row in response.xpath('//*[@id="content-box"]/div[2]/table/tbody/tr'):   #循环逐行从列表中获取每个链接
            item=BaiduspiderItem()   #实例化
            item['rank']=row.xpath("td[1]/div/text()")[0].get().strip()   #排名
            item['name']=row.xpath("td[2]/div/div[2]/div[1]/div/div/a/text()")[0].get().rstrip()   #大学名称
            item['city']=row.xpath("td[3]/text()")[0].get().strip()   #所在省市
            item['type'] = row.xpath("td[4]/text()")[0].get().strip()    #类型
            item['score']=row.xpath("td[5]/text()")[0].get().strip()   #总分
            yield item

items文件的代码如下:

import scrapy
class BaiduspiderItem(scrapy.Item):
    rank = scrapy.Field()
    name = scrapy.Field()
    city = scrapy.Field()
    type = scrapy.Field()
    score = scrapy.Field()

最后输入命令运行爬虫文件:scrapy crawl daxue -o daxue.csv
最终得到的结果如下:

补充strip、lstrip、rstrip的用法

这三个都是为了删除字符串中不同位置的指定字符。strip()用于去除字符串的首尾字符,lstrip()用于去除开头(左边left)的字符,rstrip()用于去除尾巴(右边right)的字符

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号