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 相关文章推荐
python实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
Python实现的Excel文件读写类
Jul 30 Python
Python中使用支持向量机SVM实践
Dec 27 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 Python
Python(Django)项目与Apache的管理交互的方法
May 16 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
python实现语音常用度量方法的代码详解
May 25 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
Linux下快速搭建php开发环境
2017/03/13 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
如何解决webpack-dev-server代理常切换问题
2019/01/09 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
python实现查询IP地址所在地
2015/03/29 Python
初步解析Python下的多进程编程
2015/04/28 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
优秀幼教自荐信
2014/02/03 职场文书
寒假家长评语大全
2014/04/16 职场文书
中等生评语大全
2014/05/04 职场文书
2015年幼师工作总结
2015/04/28 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技