Python-网站页面代码获取
Python3.6
库:urllib3, bs4
主程序是抓取亚马逊图书销售排名数据,但是亚马逊应该是加了反爬虫,拒绝疑似机器人的请求,这部分暂时以百度代替。
其实简单的页面抓取,常用的urllib.request就能实现,但是urllib3功能更多,应用前景更广,需要学习。
首先导入模块:
import urllib3, bs4
定义要访问的页面:
urltest = 'https://www.baidu.com'
定义函数,这里对比两种解码方法:
def httpget():http = urllib3.PoolManager() #首先产生一个PoolManager实例urllib3.disable_warnings() #忽略https的无效证书警报page = http.request('GET','%s'%urltest) #发起GET请求print(page.status) #服务器返回的代码print(page.data) #服务器返回的数据,返回的是xml字符串print(page.data.decode()) #利用默认'utf-8'编码格式去解码res = bs4.BeautifulSoup(page.data,'lxml') #利用lxml模块解码print(res)return None
执行函数httpget()输出结果:
200 b'<!DOCTYPE html><!--STATUS OK--><body link="#0000cc"><div ...(#省略) <!DOCTYPE html><!--STATUS OK--> <html> <head><meta http-equiv="content-type" content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><link rel="dns-prefetch" href="//s1.bdstatic.com"/><link rel="dns-prefetch" href="//t1.baidu.com"/><link rel="dns-prefetch" href="//t2.baidu.com"/><link rel="dns-prefetch" href="//t3.baidu.com"/><link rel="dns-prefetch" href="//t10.baidu.com"/><link rel="dns-prefetch" href="//t11.baidu.com"/><link rel="dns-prefetch" href="//t12.baidu.com"/><link rel="dns-prefetch" href="//b1.bdstatic.com"/><title>百度一下,你就知道</title>...(#省略) ...(#省略)
</body></html><!DOCTYPE html> <!--STATUS OK--><html> <head> <meta content="text/html;charset=utf-8" http-equiv="content-type"/> <meta content="IE=Edge" http-equiv="X-UA-Compatible"/> <link href="//s1.bdstatic.com" rel="dns-prefetch"/> <link href="//t1.baidu.com" rel="dns-prefetch"/> <link href="//t2.baidu.com" rel="dns-prefetch"/> <link href="//t3.baidu.com" rel="dns-prefetch"/> <link href="//t10.baidu.com" rel="dns-prefetch"/> <link href="//t11.baidu.com" rel="dns-prefetch"/> <link href="//t12.baidu.com" rel="dns-prefetch"/> <link href="//b1.bdstatic.com" rel="dns-prefetch"/> <title>百度一下,你就知道</title> ...(#省略)...(#省略) </body></html>Process finished with exit code 0
在这里两种解码方式都没出错,但是如果换成比较复杂的页面,普通的decode()方式就容易报错。
比如京东这个页面:
url = 'https://item.jd.com/6072622.html'
将urltest替换成url之后执行代码,执行结果如下:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 146: invalid start byte
转载于:https://www.cnblogs.com/auqarius/p/9003610.html
Python-网站页面代码获取相关推荐
- 宝付-上海宝付网站页面代码如何搞定
这个是处理表单的页面,其实如果按照你说的,只有一个用户名的话,那就不用数据库咯.满简单的. <% AdminName=request("AdminName") Passwor ...
- python五十行代码获取很多很多个好看图片
下载一个图片网址的主要函数,请求头的话可以根据不同的网址跟换相应的Cookie 啥的,截取文件名称可能也许要对应的修改下. # 下载图片 def download_img(img_url):heade ...
- 网站页面代码优化的方法有哪些呢?
在制作网站页面的时候,所产生的HTML源代码中肯定有一些是网站不需要的,例如空格和注释,这就是垃圾代码,而这些垃圾代码会增加页面文件的大小,另外,一些网站页面制作方式也会增加页面文件大小. 页面文件太 ...
- 使用Python代码获取网站反应时间的实战代码
大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...
- python爬虫小说代码示例-中文编程,用python编写小说网站爬虫
原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...
- python爬小说代码_中文编程,用python编写小说网站爬虫
原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...
- 使用Python开发轻量级的Web框架以及基于WSGI的服务器来实现一个网站页面
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目说明 二丶数据准备 三丶使用网络TCP开发一个基于WSGI协议的Web服务器 四丶使用python3开发一个轻量级的 ...
- 获取clientheight为0_用10行python代码获取全国城市交通生活圈
今天在网上冲浪看到一个很花哨的数据,全国各城市主要商圈从早上6点到晚上10点的20min,30min,45min,60min,90min生活圈轮廓. 1 获取思路 按下F12 按下F12,点击淮海路可 ...
- php获取页面视频文件,PHP获取各大视频网站页面中的Flash播放地址
先看一个简单的,我用PHP实现了这个功能,我觉得用PHP来做这项工作简直是一种享受!使用其提供的强大的HTML页面处理函数和正则表达式,短短的几行代码就能搞定这个功能. 贴一下关键代码: //获取优酷 ...
最新文章
- android 判断ip地址合法
- Web 应用服务器端渲染入门指南
- cups支持的打印机列表_网络存储让你的打印机瞬间变无线,打印文件不用愁
- 用XenoCode 2006 加密dll(.NET
- sublime生产力提升利器
- 数据库存入表情符报错问题
- 机械工程师 舒尔电子_工程师专业分类,原来工程师也能这么“多才多艺”
- cdrx8如何批量导出jpg_cdrx8如何批量导出jpg_办公软件操作技巧022:如何从word文档中批量导出多张图片......
- 中国期货市场监控中心爬虫
- 使用BeanUtils.populate遇到的bug
- 各大平台免费接口,非常适用
- 机器学习之字典学习DictionaryLearning
- TortoiseSVN安装注意事项及中文语言包安装
- 加密算法(DES\RSA\SHA\ELGAMAL)
- 不得不承认、放弃造车是明智之举!
- 数据结构与算法之插入排序(含改进版)
- 图像工程:红外图像增强
- 对抗疫情,让我们来一场酷酷的在线考试
- 前端Vue2.6.10数据压缩(zlib/pako)和解压(zlib/pako),后端Python3.7数据压缩(zlib)和解压(zlib)
- 相对虚拟地址,虚拟地址,文件偏移地址
热门文章
- 第 22 章 备忘录模式
- mysql测试什么鬼,where 1=1 是什么鬼?SQL中有这玩意?
- 汕尾python高手_每天两小时,下一个python 高手就是你!满满都是干货
- mysql导入 内存溢出_Solr Dataimporthandler 导入MySQL 内存溢出。
- 神泣单机服务器维护,神泣9.0网游单机版网单一键服务端 魔王归来
- python中sklearn库更新_python库之sklearn
- 一旦有辞职念头就干不长了吗_辞职后,社保该不该管,是否影响养老金?需不需本人去社保局注销...
- smoothl1函数_Faster RCNN的损失函数(Loss Function)
- 基于vue axios element-ui 的 demo
- java添加关闭窗口事件_Java开发网 - 如何给JInternalFrame类的窗口添加关闭事件?...