范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Pyhon爬虫下载小说

  本节通过具体的爬虫程序,演示BS4解析库的实际应用。爬虫程序目标:下载诗词名句网(https://www.shicimingju.com/book/)《两晋演义》小说。
  关于分析网页分过程,这里不再做详细介绍了,只要通读了前面的文章,那么关于如何分析网页,此时您应该了然于胸了。其实,无论您爬取什么类型的网站,分析过程总是相似的。案例简单分析
  首先判网站属于静态网站,因此您的主要任务是分析网页元素的组成,然后使用BS4提取所需的信息。如下所示:
  提取到a标签是解决本程序的重点,a标签的页面代码结构如下所示: 
  • 自序
  • 第一回 祀南郊司马开基 立东宫庸雏伏祸
  • 第二回 堕诡计储君纳妇 慰痴情少女偷香
  • ...123456复制代码类型:[python]   从上述代码可以看出,a标签包含了目录名称以及详情页的地址链接。那么如何获取a标签呢?经过简单分析后可知a标签属于p>ul>li的子节点,因此可以使用BS4的select()获取。如下所示:list_name = soup.select(".book-mulu > ul > li > a")1复制代码类型:[python]   上述代码的返回值是一个列表,列表中每一个元素都是一个Tag对象,类型为。   下载详情页的URL也非常容易获得,它是由发起请求的URL与a标签的herf链接拼接而成。因此通过字符串拼接就可以获取下载详内容页的URL。https://www.shicimingju.com/book/liangjinyanyi/2.html https://www.shicimingju.com/book/liangjinyanyi/3.html12复制代码类型:[python]   最后一步是提取具体的内容。通过分析详情页的元素构成可知,我们想要的内容都包含在以下标签中: 具体内容 123复制代码类型:[python]   因此使用BS4的find()方法就可以获取所需内容,如下所示:artist = soup.find("p", class_="chapter_content")1复制代码类型:[python]   之后把获取的内容写入到txt文件中就可以了。下面我使用之前学习过的urllib模块与BS4模块编写爬虫程序,这样才能做到温故而知新。编写爬虫程序   代码如下所示,程序中已经做了详细的注释:import urllib.request import random from bs4 import BeautifulSoup import time def request_html(url): headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"} request = urllib.request.Request(url, headers=headers) return request def parse_html(html, f): # 生成soup对象 soup = BeautifulSoup(html, "lxml") # 查找所有的章节链接和标题内容 list_name = soup.select(".book-mulu > ul > li > a") # 遍历每一个列表中的tag对象,获取链接个目录 for item in list_name: # 获取链接 #item: 自序 #拼接目录链接,此处item类型为,使用下面方法可以值获取href属性值 href = "http://www.shicimingju.com" + item["href"] # 获取标题 title = item.text print("正在下载:-**--%s--**-......" % title) # 获取章节内容函数 text = get_text(href) # 写入文件 f.write(title + " " + text) print("结束下载:-**--%s--**-" % title) time.sleep(random.uniform(0,1)) # 提取章节内容 def get_text(href): #创建请求对象 request = request_html(href) content = urllib.request.urlopen(request).read().decode("utf8") soup = BeautifulSoup(content, "lxml") # 查找包含内容的tag--p artist = soup.find("p", class_="chapter_content") #获取tag标签中的文本内容 return artist.text def run(): # 打开文件 f = open("两晋演义.txt", "w", encoding="utf8") url = "http://www.shicimingju.com/book/liangjinyanyi.html" # 构建请求对象 request = request_html(url) # 发送请求,得到响应,转换为HTML对象 html = urllib.request.urlopen(request).read().decode("utf8") # 解析内容 parse_html(html,f) #关闭文件 f.close() if __name__ == "__main__": run()12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152复制代码类型:[python]   程序运行结果:正在下载:-**--自序--**-...... 结束下载:-**--自序--**- 正在下载:-**--第一回 祀南郊司马开基 立东宫庸雏伏祸--**-...... 结束下载:-**--第一回 祀南郊司马开基 立东宫庸雏伏祸--**- 正在下载:-**--第二回 堕诡计储君纳妇 慰痴情少女偷香--**-...... ....   开课吧广场-人才学习交流平台

GalaxyA525G提前曝光光充电器IP67对于属于中端市场的手机,GalaxyA52在正式发布之前已经引起了巨大轰动。这款手机最近引起了很多关注,而最新的曝光使GalaxyA525G出现了前所未有的信息。今天早些时候,将尚GalaxyS10OneUI3。0更新推送已恢复三星几周前开始推出稳定版GalaxyS10OneUI3。0更新。不过,三星在上周取消了更新推送。虽然没有提供任何关于为什么这样做的说明,但更新推送还是被停止了。多个用户报告了更新的GalaxyTabS6Lite更新Android11GalaxyTabS6Lite现在开始接受其首次主要操作系统升级,更新版本号为P615XXU4CUBB,更新时间至少提前两个月。因此,三星的中档平板电脑在正式发布十个月后便开始向A全新GalaxyM625G将普及5G换皮A525GGalaxyA系列手机是三星首款获得5G支持的非旗舰产品。三星一直致力于使5G覆盖全球更多客户,这意味着必须大大降低进入门槛。三星可以通过在其中档和低端设备中增加5G支持来做到这一三星为最廉价的GalaxyA01推送2021年2月安全更新在GalaxyA01的固件更新已经过去了大约三个月后,三星又把注意力转回这款不起眼的廉价手机,并推送了一个新的安全补丁。三星目前正在推送GalaxyA01(SMA015F)的202宝马X325i怎么样?动力够用吗?简评25iM运动套装版宝马X3的外观无需多说,宝马经典的双肾格栅勺子型LED日行灯充满力量感的车身线条,无不在彰显着宝马家族独特的运动气质,而且最低配车型也直接提供M运动套件,并且无需加价,这一点值得称进阶的家族脸,新款长安CS35PLUS上市,配全新蓝鲸动力长安汽车从微面起家,靠合资品牌发展,最后靠自主研发而壮大,目前已经成为一线国产汽车品牌,而旗下的SUV车型应该算是头功。CS35是长安推出的首款SUV车型,而且首战告捷,奠定了长安牛犇版到底牛不牛?简析奔腾T55,10。49万起售虽说有一汽集团的强大背景和资金支持,但奔腾在国内自主品牌中的存在感很低,还有人说它是廉价版红旗,其实奔腾在一汽的众多品牌中,也确实有点爹不疼娘不爱的意思。日前,奔腾全新紧凑型SUV拒绝双离合,长安CS75PLUS超越哈弗H6成2月份销冠近日,车联会公布了2月份国内汽车市场销量数据,可以说说是几家欢喜几家愁,首先就是大众朗逸超越日产轩逸,成为轿车市场的新销冠,其次就是长安CS75PLUS这个万年老二成功超越哈弗H6追光吧20212020年,国家提出新基建,旨在吸收新科技革命成果建立现代化经济体系基础设施。云徙作为国内首家数字化转型践行者,为消费品地产汽车等行业100客户成功赋能了数字化转型与商业创新。身体云徙科技CEO包志刚受邀参加大国消费战略营销创新论坛4月25日,由上海市中小企业发展服务中心上海交通大学海外教育学院联合主办的大国消费战略营销创新论坛暨交大CEOCMO校友春季论坛在上海银星皇冠假日酒店隆重举行!上海市中小企业发展服
全球出货量第一的三星,现被国产机围剿清仓!网友国货崛起尽管随着爆炸门事件之后,三星在国内的影响力逐渐降低,市场份额逐渐减少,但三星在全球范围内仍然拥有霸主地位,智能手机出货量常年稳居第一。不过随着近两年国产手机崛起,并且席卷全球,三星微信小程序模板网站平台,小程序界面设计模板套用随着移动网络的发展,微信小程序让很多微小个体户看到了希望,因为可以借助微信小程序开展一系列活动,例如社区团购微信拼团微信砍价微信抽奖秒杀等热门活动,通过微信小程序可以让个体户进行营618骁龙870手机推荐这三款口碑领先各有特点,总有一款适合你手机无疑是人们使用率最高的数码产品,娱乐学习生产力手机已经可以媲美PC平板相机等很多产品。这也让用户选购手机的时候要求越来越高,也越来越谨慎。不少人会参考网站编辑或者业界大V的评测淘宝运营新手玩转直通车,创意标题组合及优化技巧的正确姿很多新手小白一开始没有经验,可是在直通车上投资了不少钱,结果耗时耗钱不说,还没什么效果,但是看着别人通过直通车增加了客户,提高销量,而自己这里这么冷清,非常不是滋味,那么今天小编就淘宝运营密码淘宝店铺如何引流,有什么小技巧么作为一个新店铺,前期销量低很正常,关键是通过什么样的方式进行引流,然后能够帮助到我们提升销量,下面小编就带大家了解几种淘宝最常用的引流技巧,希望能够帮助到大家提高店铺的转换率。1。快递单号批量查询软件,物流快递单号查询方法步骤不管是做直播卖货还是做电商,每天都需要发出大量的快递,要定时需了解物流信息,及时查看快递状态,了解快递是否存在异常。如果用传统的查询方法会影响查询速度,建议使用固乔批量查询快递的工呼伦贝尔益丰祥泰比亚迪南屯4S店优惠促销本周宋Pro最新报价比亚迪益丰祥泰店10。26日限时促销,降价10。78,如此优惠的降幅,大家可千万不要错过,店铺地址内蒙古自治区呼伦贝尔市鄂温克族自治旗巴彦托海镇南工业园区利丰汽呼伦贝尔益丰祥泰比亚迪4S店宋Pro进店享优惠本周宋Pro最新报价比亚迪益丰祥泰店10。27日限时促销,降价10。78,如此优惠的降幅,大家可千万不要错过,店铺地址内蒙古自治区呼伦贝尔市鄂温克族自治旗巴彦托海镇南工业园区利丰汽二胎时代的家庭型汽车比亚迪宋MAX2020年8月1日晚,比亚迪宋MAX(参数询价)升级版正式上市,新车共推出4款车型,售价区间为9。4812。48万元。新车相比现款在外观和内饰方面均有升级,动力方面继续搭载1。5T呼伦贝尔宋MAX热销中,降价0。4万元本周最新车市行情,宋MAX,比亚迪益丰祥泰店最高优惠4。22截止到10月26日,观望宋MAX的朋友,机会难得,不要犹豫,不要错过下手好机会促销时间2021年10月26日至2021年互动营销如何使用游戏手段吸引流量如今做营销的时候,都会感觉到用户对各种类型对营销习以为常,没有增添新元素的营销手段激不起半点涟漪。相反,越是有新意有趣的营销,消费者才愿意加入进来,为你的营销行为买单。除了平平无奇