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的Django框架中调用方法和处理无效变量
Jul 15 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
python模块之time模块(实例讲解)
Sep 13 Python
python画出三角形外接圆和内切圆的方法
Jan 25 Python
python调用API实现智能回复机器人
Apr 10 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
python实现Thrift服务端的方法
Apr 20 Python
关于python中模块和重载的问题
Nov 02 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 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
Protoss兵种介绍
2020/03/14 星际争霸
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
PHP Class&Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
javascript引导程序
2008/10/26 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
python创建子类的方法分析
2019/11/28 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Python实现序列化及csv文件读取
2020/01/19 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
html5使用canvas画三角形
2014/12/15 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
幼儿园国庆节活动方案
2014/02/01 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
党员演讲稿
2014/09/04 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书