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-网站页面代码获取相关推荐

  1. 宝付-上海宝付网站页面代码如何搞定

    这个是处理表单的页面,其实如果按照你说的,只有一个用户名的话,那就不用数据库咯.满简单的. <% AdminName=request("AdminName") Passwor ...

  2. python五十行代码获取很多很多个好看图片

    下载一个图片网址的主要函数,请求头的话可以根据不同的网址跟换相应的Cookie 啥的,截取文件名称可能也许要对应的修改下. # 下载图片 def download_img(img_url):heade ...

  3. 网站页面代码优化的方法有哪些呢?

    在制作网站页面的时候,所产生的HTML源代码中肯定有一些是网站不需要的,例如空格和注释,这就是垃圾代码,而这些垃圾代码会增加页面文件的大小,另外,一些网站页面制作方式也会增加页面文件大小. 页面文件太 ...

  4. 使用Python代码获取网站反应时间的实战代码

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  5. python爬虫小说代码示例-中文编程,用python编写小说网站爬虫

    原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...

  6. python爬小说代码_中文编程,用python编写小说网站爬虫

    原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...

  7. 使用Python开发轻量级的Web框架以及基于WSGI的服务器来实现一个网站页面

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目说明 二丶数据准备 三丶使用网络TCP开发一个基于WSGI协议的Web服务器 四丶使用python3开发一个轻量级的 ...

  8. 获取clientheight为0_用10行python代码获取全国城市交通生活圈

    今天在网上冲浪看到一个很花哨的数据,全国各城市主要商圈从早上6点到晚上10点的20min,30min,45min,60min,90min生活圈轮廓. 1 获取思路 按下F12 按下F12,点击淮海路可 ...

  9. php获取页面视频文件,PHP获取各大视频网站页面中的Flash播放地址

    先看一个简单的,我用PHP实现了这个功能,我觉得用PHP来做这项工作简直是一种享受!使用其提供的强大的HTML页面处理函数和正则表达式,短短的几行代码就能搞定这个功能. 贴一下关键代码: //获取优酷 ...

最新文章

  1. android 判断ip地址合法
  2. Web 应用服务器端渲染入门指南
  3. cups支持的打印机列表_网络存储让你的打印机瞬间变无线,打印文件不用愁
  4. 用XenoCode 2006 加密dll(.NET
  5. sublime生产力提升利器
  6. 数据库存入表情符报错问题
  7. 机械工程师 舒尔电子_工程师专业分类,原来工程师也能这么“多才多艺”
  8. cdrx8如何批量导出jpg_cdrx8如何批量导出jpg_办公软件操作技巧022:如何从word文档中批量导出多张图片......
  9. 中国期货市场监控中心爬虫
  10. 使用BeanUtils.populate遇到的bug
  11. 各大平台免费接口,非常适用
  12. 机器学习之字典学习DictionaryLearning
  13. TortoiseSVN安装注意事项及中文语言包安装
  14. 加密算法(DES\RSA\SHA\ELGAMAL)
  15. 不得不承认、放弃造车是明智之举!
  16. 数据结构与算法之插入排序(含改进版)
  17. 图像工程:红外图像增强
  18. 对抗疫情,让我们来一场酷酷的在线考试
  19. 前端Vue2.6.10数据压缩(zlib/pako)和解压(zlib/pako),后端Python3.7数据压缩(zlib)和解压(zlib)
  20. 相对虚拟地址,虚拟地址,文件偏移地址

热门文章

  1. 第 22 章 备忘录模式
  2. mysql测试什么鬼,where 1=1 是什么鬼?SQL中有这玩意?
  3. 汕尾python高手_每天两小时,下一个python 高手就是你!满满都是干货
  4. mysql导入 内存溢出_Solr Dataimporthandler 导入MySQL 内存溢出。
  5. 神泣单机服务器维护,神泣9.0网游单机版网单一键服务端 魔王归来
  6. python中sklearn库更新_python库之sklearn
  7. 一旦有辞职念头就干不长了吗_辞职后,社保该不该管,是否影响养老金?需不需本人去社保局注销...
  8. smoothl1函数_Faster RCNN的损失函数(Loss Function)
  9. 基于vue axios element-ui 的 demo
  10. java添加关闭窗口事件_Java开发网 - 如何给JInternalFrame类的窗口添加关闭事件?...