爬虫实现练习

目录

寒假练习爬虫实现一:最好大学网排名爬取。


本人0基础菜鸡,寒假趁机狂补python基础,简单的学一点爬虫,欢迎大佬指导!

目录

寒假练习爬虫实现一:最好大学网排名爬取。


寒假练习爬虫实现一:最好大学网排名爬取。

        首先第一个要完成的函数就是向需要爬取的网站发送一个请求并且得到响应,也就是

def get_one_page(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55'
    }
    response = requests.get(url,headers=headers)
    if response.status_code == 200:
        response.encoding = response.apparent_encoding
        return response.text
    return None

这一次我们使用requests库来完成获取响应的操作。因为网站一般都会拒绝python的requests库的直接访问,所以我们需要将headers也就是请求头的用户信息修改为mozilla5.0,也就是我们一般浏览器的数据。我们可以先使用浏览器访问url并且用开发者工具查看我们正常访问时的headers信息,复制到我们的代码上即可。

        第二个函数就是要对爬取的页面信息进行解析,从中间找到我们需要的信息,所以我们利用正则表达式进行有效信息的匹配,并将所得到的信息进行输出。

def parse_one_page(html):
    pattern = re.compile('<a href=".*?" class="name-cn" data-v-b80b4d60>(.*?) </a>',re.S)
    items = re.findall(pattern,html)
    for item in items:
        print(item)

        最后我们编辑一下主函数进行调用即可,我们也可以print(html)来看一下爬取的网页的信息,这里我给它注释掉了。

def main():
    url = 'https://www.shanghairanking.cn/rankings/bcur/2020'
    html = get_one_page(url)
    #print(html)
    parse_one_page(html)

完整代码如下:

​
import json
import re
import requests
def get_one_page(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55'
    }
    response = requests.get(url,headers=headers)
    if response.status_code == 200:
        response.encoding = response.apparent_encoding
        return response.text
    return None


def parse_one_page(html):
    pattern = re.compile('<a href=".*?" class="name-cn" data-v-b80b4d60>(.*?) </a>',re.S)
    items = re.findall(pattern,html)
    for item in items:
        print(item)

def main():
    url = 'https://www.shanghairanking.cn/rankings/bcur/2020'
    html = get_one_page(url)
    #print(html)
    parse_one_page(html)

main()

​

部分运行结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值