Python开发技术—网络爬虫(代码在置顶文章)

这篇博客详细介绍了Python网络爬虫的开发技术,从基础的urllib开始,逐步讲解了requests库的使用,包括发送GET和POST请求,以及设置headers头。接着,介绍了正则表达式re模块,包括基本概念、语法和分组。最后,通过BeautifulSoup库演示了如何爬取桂电就业信息,包括网页解析和数据提取。博客提供了每个阶段的编程要求和测试说明,帮助读者通过实践学习网络爬虫技术。
摘要由CSDN通过智能技术生成

第1关:urllib

任务描述

本关任务:使用python内置库urllib发起请求并返回状态码。

相关知识

Get

urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应:
例如,对豆瓣的一个URLhttps://api.douban.com/v2/book/2129650
进行抓取,并返回响应:

 from urllib import request
    with request.urlopen(‘http://www.gliet.edu.cn/') as f:
        data = f.read()
        print(‘Status:, f.status, f.reason)
        for k, v in f.getheaders():
            print(%s: %s’ % (k, v))
    print(‘Data:, data.decode(‘utf-8))

可以看到HTTP响应的头和数据。

如果我们要想模拟浏览器发送GET请求,就需要使用Request对象,通过往Request对象添加HTTP头,我们就可以把请求伪装成浏览器。例如,模拟iPhone 6去请求豆瓣首页:

from urllib import request
req = request.Request('http://www.douban.com/')
req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')with request.urlopen(req) as f:
    print('Status:', f.status, f.reason)
    for k, v in f.getheaders():
        print('%s: %s' % (k, v))
    print('Data:', f.read().decode('utf-8'))

urllib更详细的用法可以参考:
https://www.liaoxuefeng.com/wiki/1016959663602400/1019223241745024

编程要求

根据提示,在右侧编辑器补充代码,对给定链接发送请求。请求成功时返回Status(状态码),失败时返回错误信息。
提示:使用以下格式可输出错误信息


    try:
        …
    except Exception as e:
        …
测试说明

平台会对你编写的代码进行测试:

测试输入:http://www.gliet.edu.cn/

预期输出:

Status: 200 OK

测试输入:一个错误的url,不能请求成功

预期输出:

<urlopen error [Errno -2] Name or service not known>

开始你的任务吧,祝你成功!

Requests: HTTP for Humans

第2关:requests

任务描述

本关任务:使用python第三方库requests发起请求并返回状态码。

相关知识

Python内置的urllib模块,用于访问网络资源。但是,它用起来比较麻烦,而且,缺少很多实用的高级功能。
更好的方案是使用r

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值