python网络数据采集电子书(起点中文网越来越火爆了)
python网络数据采集电子书(起点中文网越来越火爆了)
2024-11-22 02:34:14  作者:坚强被吞噬  网址:https://m.xinb2b.cn/sport/cgc436365.html

主要讲解爬虫相关的知识如:http、网页、爬虫法律等,让大家对爬虫有了一个比较完善的了解和一些题外的知识点。


今天这篇文章,我们从今天开始就正式进入实战阶段,后面将会有更多的实际案例。

为大家讲解了HTTP原理,很多人好奇:好好的讲爬虫和HTTP有什么关系?其实我们常说的爬虫(也叫网络爬虫)就是使用一些网络协议发起的网络请求,而目前使用最多的网络协议便是HTTP/S网络协议簇。

一、Python有哪些网络库

在真实浏览网页我们是通过鼠标点击网页然后由浏览器帮我们发起网络请求,那在Python中我们又如何发起网络请求的呢?答案当然是库,具体哪些库?猪哥给大家列一下:

Python2: httplib、httplib2、urllib、urllib2、urllib3、requestsPython3: httplib2、urllib、urllib3、Requests

Python网络请求库有点多,而且还看见网上还都有用过的,那他们之间有何关系?又该如何选择?

httplib/2:这是一个Python内置http库,但是它是偏于底层的库,一般不直接用。而httplib2是一个基于httplib的第三方库,比httplib实现更完整,支持缓存、压缩等功能。一般这两个库都用不到,如果需要自己 封装网络请求可能会需要用到。urllib/urllib2/urllib3:urlliib是一个基于httplib的上层库,而urllib2和urllib3都是第三方库,urllib2相对于urllib增加一些高级功能,如:HTTP身份验证或Cookie等,在Python3中将urllib2合并到了urllib中。urllib3提供线程安全连接池和文件post等支持,与urllib及urllib2的关系不大。requests:requests库是一个基于urllib/3的第三方网络库,它的特点是功能强大,API优雅。由上图我们可以看到,对于http客户端python官方文档也推荐我们使用requests库,实际工作中requests库也是使用的比较多的库。

综上所述,我们选择选择requests库作为我们爬虫入门的起点。另外以上的这些库都是同步网络库,如果需要高并发请求的话可以使用异步网络库:aiohttp,这个后面猪哥也会为大家讲解。

二、requests介绍

希望大家永远记住:学任何一门语言,都不要忘记去看看官方文档。也许官方文档不是最好的入门教程,但绝对是最新、最全的教学文档!

1.首页

requests的官方文档(目前已支持中文)


从首页中让HTTP服务人类这几个字中我们便能看出,requests核心宗旨便是让用户使用方便,间接表达了他们设计优雅的理念。


注:PEP 20便是鼎鼎大名的Python之禅。

警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。

2.功能特性

都说requests功能强大,那我们来看看requests到底有哪些功能特性吧:

Keep-Alive & 连接池国际化域名和 URL带持久 Cookie 的会话浏览器式的 SSL 认证自动内容解码基本/摘要式的身份认证优雅的 key/value Cookie自动解压Unicode 响应体HTTP(S) 代理支持文件分块上传流下载连接超时分块请求支持 .netrc

requests 完全满足今日 web 的需求。Requests 支持 Python 2.6—2.7以及3.3—3.7,而且能在 PyPy 下完美运行

三、安装requests

pip install requests

如果是pip3则使用

pip3 install requests

如果你使用anaconda则可以

conda install requests

如果你不想用命令行,可在pycharm中这样下载库


四、爬虫流程

下图是猪哥之前工作总结的一个项目开发流程,算是比较详细,在开发一个大型的项目真的需要这么详细,不然项目上线出故障或者修改需求都无法做项目复盘,到时候程序员就有可能背锅祭天。。。


言归正传,给大家看项目的开发流程是想引出爬虫爬取数据的流程:

确定需要爬取的网页浏览器检查数据来源(静态网页or动态加载)寻找加载数据url的参数规律(如分页)代码模拟请求爬取数据

起点中文网创建于2002年5月,是国内最大文学阅读与写作平台之一,是国内领先的原创文学门户网站,隶属于国内最大的数字内容综合平台——阅文集团旗下。

总体思路分为三步:

1.分析网页结构,利用xpath表达式爬取到所有的文章名字与链接,并按文章名字生成文件夹。

import requestsfrom urllib import requestfrom lxml import etreeimport osheader = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}class Spider(object): def start_request(self): url = 'https://www.qidian.com/all' req = request.Request(url,headers=header) html= request.urlopen(req).read().decode('utf-8') html=etree.HTML(html) bigtit_list=html.xpath('//div[@class="book-mid-info"]/h4/a/text()') ##爬取所有的文章名字 bigsrc_list = html.xpath('//div[@class="book-mid-info"]/h4/a/@href') print(bigtit_list) print(bigsrc_list) for bigtit,bigsrc in zip(bigtit_list,bigsrc_list): if os.path.exists(bigtit)==False: os.mkdir(bigtit) self.file_data(bigsrc,bigtit)

2.利用文章链接,爬取每个章节名字与链接

def file_data(self,bigsrc,bigtit): #详情页 url="http:" bigsrc req = request.Request(url, headers=header) html = request.urlopen(req).read().decode('utf-8') html = etree.HTML(html) print(html) Lit_tit_list = html.xpath('//ul[@class="cf"]/li/a/text()') #爬取每个章节名字 Lit_href_list = html.xpath('//ul[@class="cf"]/li/a/@href') #每个章节链接 for tit,src in zip(Lit_tit_list,Lit_href_list): self.finally_file(tit,src,bigtit)

3.利用每个章节的链接,生成带有章节名称的txt文件,并保存到每个文章文件夹下。

def finally_file(self,tit,src,bigtit): url = "http:" src req = request.Request(url, headers=header) html = request.urlopen(req).read().decode('utf-8') html = etree.HTML(html) text_list = html.xpath('//div[@class="read-content j_readContent"]/p/text()') text = "\n".join(text_list) file_name = bigtit "\\" tit ".txt" print("正在抓取文章:" file_name) with open(file_name, 'a', encoding="utf-8") as f: f.write(text)spider=Spider()spider.start_request()

成功!


生成的文件夹如下图:


  • 号小店怎么开通(号小店你准备好了吗)
  • 2024-11-22号小店你准备好了吗听说视频号小店上线了,满怀信心地开通了小店,几天运营下来,发现视频号小店还是不够成熟?而在“视频号小店交流区”,很多店主发帖吐槽视频号小店存在的问题问题如下:1、据客户反应,他通过分享的链接购买了产品。
  • adidas 马拉松(达步路乐双跑人)
  • 2024-11-22达步路乐双跑人品牌中文:达步路乐品牌英文:DOUBLERUNNER经营范围:运动鞋服体育用品DOUBLERUNNER达步路乐运动达人象征来自公元前六世纪跑者传递奔跑的力量DOUBLERUNNER达步路乐运动品牌是【。
  • 官宣恋情高级简短文案(150句官宣恋爱文案)
  • 2024-11-22150句官宣恋爱文案从2021年开始,官宣你就是唯一那么官宣的姿势都有哪些呢?全世界的大人,一个人的小朋友以后我的瓶盖都由他来拧再见大森林,我被歪脖子树挂住了~和xx同学就恋爱问题达成一致生活归生活,理想归理想,现实归现。
  • 生蚝的营养价值及功效(生蚝的营养价值及功效是什么)
  • 2024-11-22生蚝的营养价值及功效是什么生蚝提取物有明显抑制血小板聚集作用,能降低高血脂病人的血脂和血中TXA2含量,有利于胰岛素分泌和利用,又能使恶性肿瘤细胞对放射线敏感性增强,并对其生长有抑制作用生蚝中所含丰富的牛黄酸有明显的保肝利胆作。
  • 感谢逼你离开的人(感谢你坚定的离开)
  • 2024-11-22感谢你坚定的离开我该如何跟一个不想失去的人说再见呢,我坐在床上哭了很久,直到眼睛肿了,疼的发酸我在想我为什么哭呢?是因为喜欢他吗?还是不甘心?好像都不是,是对自己的恨铁不成钢在我看来很珍贵的爱,在别人那像垃圾一样被践。
  • 张一山个人简介身高(经历低谷再度爆红)
  • 2024-11-22经历低谷再度爆红最近很多张一山的粉丝都在后台问他的近况,但是他因为身体原因减少了很多行程,关于他的消息也很少,所以蜜桃哥哥决定干脆写一期蜜桃说来说说他,也算是如了粉丝的心愿了张一山出生在一个普通的家庭里5岁时,张一山。
  • 白玉冬瓜海米汤(鲜掉眉毛的美味家常菜冬瓜海米汤)
  • 2024-11-22鲜掉眉毛的美味家常菜冬瓜海米汤朋友送了一包海米,个头还不小,By不要熬夜kixl用料冬瓜250克盐适量鸡精少许小米椒1个姜2片海米15颗做法步骤1、冬瓜切片2、海米从冰箱拿出来先泡水3、两片姜,一个小米椒切断,放入油锅,炸香后,放。
  • 东非大裂谷形成的原因(东非大裂谷的地理位置)
  • 2024-11-22东非大裂谷的地理位置板块构造学说是解释地表宏观地形的主要学说,该学说的主要观点包括全球的岩石圈可以分为六大板块,分别是亚欧板块、非洲板块、印度洋板块、太平洋板块、美洲板块和南极洲板块,板块内部相对稳定,而板块与板块之间的。
  • 管理常用的11种工具(管理者常用的19个管理工具)
  • 2024-11-22管理者常用的19个管理工具一、SWOT分析法SWOT分析法又称为态势分析法,它是由旧金山大学的管理学教授于20世纪80年代初提出来的,是一种能够较客观而准确地分析和研究一个单位现实情况的方法SWOT四个英文字母分别代表:优势(。
  • 反恐特战天狼49(反恐特战兵铁血刀锋)
  • 2024-11-22反恐特战兵铁血刀锋来源:解放军生活·解放军新闻传播中心融媒体作者:文/王国银图/程维峰张灏天山山脉,冰峦叠布,群峰突兀突然,一阵清脆的枪声响起,气氛骤然紧张起来“注意隐蔽,快速接近!”随着一声令下,刘琳带领5名全副武装。
  • 适合刚入职场的人看的电视剧(初入职场必看的电视剧)
  • 2024-11-22初入职场必看的电视剧《岁月》是由胡军、梅婷、于和伟、王彤领衔主演这部剧根据小说《沧浪之水》改编,讲述了刚踏出校门的研究生梁致远在遭遇了工作与生活上一系列的困境和挫折后,从一个有棱有角的知识分子蜕变成鹅卵石男人的故事梁志远。