python3+beautifulSoup4.6抓取某网站小说(一)爬虫初探
本次学习重点:
1、使用urllib的request进行网页请求,获取当前url整版网页内容
2、对于多级抓取,先想好抓取思路,再动手
3、BeautifulSoup获取html网页中的指定内容
4、使用多线程,加快抓取速度
本次抓取不涉及反爬虫知识。
本章学习内容:
1、最简单的request请求网页,有注释,不细说了
# -*- coding: UTF-8 -*-
from urllib import request #获取request python2可以直接使用urllib2 # 直接请求
response = request.urlopen('http://www.baidu.com') # 获取状态码,如果是200表示获取成功
print(response.getcode()) # 读取内容
cont = response.read()
print(cont)
2、User-Agent模拟浏览器请求,这个是网站最简单的防爬虫程序,服务器通过Headers中的User Agent来判断是谁在访问。
当然,道高一尺魔高一丈,python的urllib库中的request可以设置Headers来模拟浏览器访问。
# -*- coding: UTF-8 -*-
from urllib import request if __name__ == "__main__":
#以CSDN为例,CSDN不更改User Agent是无法访问的
url = 'http://www.csdn.net/'
head = {}
#写入User Agent信息
head['User-Agent'] = 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19'
#创建Request对象
req = request.Request(url, headers=head)
#传入创建好的Request对象
response = request.urlopen(req)
#读取响应信息并解码
html = response.read()
print(html)
具体的User-Agent参考链接:https://blog.csdn.net/c406495762/article/details/60137956
3、https网站的访问,最简单的ssl配置
记得4月前第2步的代码还是可以访问的,但是前几天又运行这个代码不能访问了,报
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)>
,搜索了下,发现是https导致的这个问题,又看了下csdn,发现变成https网站了。
又最以上代码中加了一行
context = ssl._create_unverified_context() #传入创建好的Request对象
response = request.urlopen(req, context=context)
当然,则是最简单的绕过办法,一劳永逸,还是应该安装个证书。
本次解决办法参考文章:https://blog.csdn.net/bernieyangmh/article/details/74578759
完整代码如下:
# -*- coding: UTF-8 -*-
from urllib import request
import ssl if __name__ == "__main__":
#以CSDN为例,CSDN不更改User Agent是无法访问的
url = 'http://www.csdn.net/'
head = {}
#写入User Agent信息
head['User-Agent'] = 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19' #ssl._create_default_https_context = ssl._create_unverified_context('') #创建Request对象
req = request.Request(url, headers=head) context = ssl._create_unverified_context() #传入创建好的Request对象
response = request.urlopen(req, context=context)
#读取响应信息并解码
html = response.read()
print(html)
html = html.decode('utf-8')
# 打印信息
print(html)
python3+beautifulSoup4.6抓取某网站小说(一)爬虫初探的更多相关文章
- python3+beautifulSoup4.6抓取某网站小说(四)多线程抓取
上一篇多文章,是二级目录,根目录"小说",二级目录"作品名称",之后就是小说文件. 本篇改造了部分代码,将目录设置为根目录->作者目录->作品目录- ...
- python3+beautifulSoup4.6抓取某网站小说(三)网页分析,BeautifulSoup解析
本章学习内容:将网站上的小说都爬下来,存储到本地. 目标网站:www.cuiweijuxs.com 分析页面,发现一共4步:从主页进入分版打开分页列表.打开分页下所有链接.打开作品页面.打开单章内容. ...
- python3+beautifulSoup4.6抓取某网站小说(二)基础功能设计
本章学习内容:1.网页编码还原读取2.功能设计 stuep1:网页编码还原读取 本次抓取对象: http://www.cuiweijuxs.com/jingpinxiaoshuo/ 按照第一篇的代码来 ...
- Python3.x+Fiddler抓取APP数据
随着移动互联网的市场份额逐步扩大,手机APP已经占据我们的生活,以往的数据分析都借助于爬虫爬取网页数据进行分析,但是新兴的产品有的只有APP,并没有网页端这对于想要提取数据的我们就遇到了些问题,本章以 ...
- Python3.x:抓取百事糗科段子
Python3.x:抓取百事糗科段子 实现代码: #Python3.6 获取糗事百科的段子 import urllib.request #导入各类要用到的包 import urllib import ...
- Python多进程方式抓取基金网站内容的方法分析
因为进程也不是越多越好,我们计划分3个进程执行.意思就是 :把总共要抓取的28页分成三部分. 怎么分呢? # 初始range r = range(1,29) # 步长 step = 10 myList ...
- 使用BurpSuite抓取HTTPS网站的数据包
昨天面试,技术官问到了我如何使用BurpSuite抓取https网站的数据包,一时间没能回答上来(尴尬!).因为以前https网站的数据包我都是用Fiddler抓取的,Fiddlert自动帮我们配置好 ...
- 网页抓取:PHP实现网页爬虫方式小结
来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现 ...
- 从urllib和urllib2基础到一个简单抓取网页图片的小爬虫
urllib最常用的两大功能(个人理解urllib用于辅助urllib2) 1.urllib.urlopen() 2. urllib.urlencode() #适当的编码,可用于后面的post提交 ...
随机推荐
- final的好处
1.final关键字提高了性能.JVM和Java应用都会缓存final变量. 2.final变量可以安全的在多线程下进行共享,而不需要额外的同步开销. 3.使用final关键字,JVM会对方法,变量和 ...
- Ruby 数式匹配器
str = "x^2 + 12317 +X^2 - Length" str = " x ^ 2 + y ...
- 3198: [Sdoi2013]spring【容斥原理+hash】
容斥是ans= 至少k位置相等对数C(k,k)-至少k+1位置相等对数C(k+1,k)+至少k+2位置相等对数*C(k+2,k) -- 然后对数的话2^6枚举状态然后用hash表统计即可 至于为什么要 ...
- 【翻译】- EffectiveAkka-第一章
第一章 Actor应用程序类型 在会议上发言时,我遇到的最多问题之一是“基于Actor的应用程序的用例是什么?”这取决于您要完成的任务,但是如果您想构建具有可管理的并发性.跨节点向外扩展性.并具有容错 ...
- nginx静态资源服务器简单配置
有时候我们可以把服务器的一些文件放在固定目录以便下载,比如image,css,js等.就可以使用nginx转发静态资源. 参考链接:https://blog.csdn.net/name_is_wl/a ...
- DP(两次) UVA 10163 Storage Keepers
题目传送门 /* 题意:(我懒得写,照搬网上的)有n个仓库,m个人看管.一个仓库只能由一个人来看管,一个人可以看管多个仓库. 每个人有一个能力值pi,如果他看管k个仓库,那么所看管的每个仓库的安全值为 ...
- Tenegrad评价函数 分类: 图像处理 Opencv 2014-11-12 20:46 488人阅读 评论(0) 收藏
Tenegrad函数式一种常用的图像清晰度评价函数,是一种基于梯度的函数. 在图像处理中,一般认为对焦好的图像具有更尖锐的边缘,故具有更大的梯度函数值. Tenegrad函数使用Sobel算子提取水平 ...
- Hackonacci Matrix Rotations 观察题 ,更新了我的模板
https://www.hackerrank.com/contests/w27/challenges/hackonacci-matrix-rotations 一开始是没想到观察题的.只想到直接矩阵快速 ...
- echart分组柱形图绑定数据
<!DOCTYPE html> <head> <meta charset="utf-8"> <title>ECharts </ ...
- php数组转为字符串,数据库存储
php对象转字符存储数据库的方法. 总所周知对象是不能直接存储到数据库的.那么我们用什么样的方法能够存储到数据库中能? 方法一:序列化serialize和unserialize 序列化对象serial ...