Python基于requests库爬取网站信息


Posted in Python onMarch 02, 2020

requests库是一个简介且简单的处理HTTP请求的第三方库

get()是获取网页最常用的方式,其基本使用方式如下

使用requests库获取HTML页面并将其转换成字符串后,需要进一步解析HTML页面格式,这里我们常用的就是beautifulsoup4库,用于解析和处理HTML和XML

下面这段代码便是爬取百度的信息并简单输出百度的界面信息

import requests
from bs4 import BeautifulSoup
r=requests.get('http://www.baidu.com')
r.encoding=None
result=r.text
bs=BeautifulSoup(result,'html.parser')
print(bs.title)
print(bs.title.text)
import requests
from bs4 import BeautifulSoup

#用来解决乱码现象,所以编写爬取信息的代码最好带上(输出出现乱码或者UnicodeEncodeError:'gbk'codec can't encode character) 
import io   
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')

#用来防止反爬取,可以了解一下
headers={"User-Agent" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6)",
"Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",

"Accept-Language" : "en-us",

"Connection" : "keep-alive",

"Accept-Charset" : "GB2312,utf-8;q=0.7,*;q=0.7"
}

#获取51job网站的基本信息
r=requests.get('https://search.51job.com/list/000000,000000,0000,00,9,99,python,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=')
r.encoding=r.apparent_encoding
result=r.text
bs=BeautifulSoup(result,'html.parser')
print(bs.prettify())

u1=bs.find_all('u1',attrs={'class':'item_con_list'})  #这部分代码便是我们爬取的目标,51job网站上关于python职业的薪资
print(len(u1))
li=bs.find_all('span',attrs={'class':'t4'})
for l in li:
  print(l.text)

上面这段代码便是爬取51job网站上的与python相关职业的薪资

Python基于requests库爬取网站信息Python基于requests库爬取网站信息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
jupyter安装小结
Mar 13 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
Python logging管理不同级别log打印和存储实例
Jan 19 Python
新手常见6种的python报错及解决方法
Mar 09 Python
Python内存读写操作示例
Jul 18 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
django中的数据库迁移的实现
Mar 16 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
解决python3输入的坑——input()
Dec 05 Python
浅谈Python中的正则表达式
Jun 28 Python
使用python3 实现插入数据到mysql
Mar 02 #Python
python数字类型math库原理解析
Mar 02 #Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 #Python
Python random库使用方法及异常处理方案
Mar 02 #Python
python 实现人和电脑猜拳的示例代码
Mar 02 #Python
解决python3插入mysql时内容带有引号的问题
Mar 02 #Python
python统计字符串中字母出现次数代码实例
Mar 02 #Python
You might like
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
PHP curl使用实例
2015/07/02 PHP
PHP6新特性分析
2016/03/03 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
js的三种继承方式详解
2017/01/21 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
Python实现的HMacMD5加密算法示例
2018/04/03 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
django解决跨域请求的问题
2018/11/11 Python
python中怎么表示空值
2020/06/19 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
机械设计毕业生自荐信
2014/02/02 职场文书
廉洁使者实施方案
2014/03/29 职场文书
战略合作意向书范本
2014/04/01 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
2014年党务工作总结
2014/11/25 职场文书