python 爬取qidian某一页全部小说

  1 import re
  2 import urllib.request
  3 from bs4 import BeautifulSoup
  4 import time
  5
  6 url=input("第一页网址:")
  7
  8 def gethtml(url):
  9                                       #获取页面源代码html
 10     page=urllib.request.urlopen(url)
 11     html=page.read().decode(‘utf-8‘)  #html是一个列表
 12     soup=BeautifulSoup(html,‘html.parser‘)
 13
 14     return soup
 15
 16
 17 def getbookurl(soup):                   #获取该页所有书本的链接地址
 18     firsturl2=[]
 19     bookurl=soup.find_all("h4")
 20     bookurl1=re.findall(r‘<h4><a data-bid=".*?" data-eid=".*?" href="(.*?)" target="_blank"‘,str(bookurl))
 21     for i in range(0,len(bookurl1)):
 22         bookurl="http:"+bookurl1[i]
 23
 24         soup1=gethtml(bookurl)          #获取每本书第一章 的url
 25         time.sleep(0.2)
 26         firsturl=soup1.find_all("a",{"class":"red-btn J-getJumpUrl "})
 27         firsturl1=re.findall(r‘data-firstchapterjumpurl=".*?" href="(.*?)" id="readBtn">‘,str(firsturl))
 28         if firsturl1[0]==‘‘:            #这里要进行判断,防止出错
 29             continue
 30         firsturl2.append(firsturl1[0])
 31     return firsturl2
 32
 33
 34
 35
 36 def getcontent(soup,load):
 37
 38     content=soup.find_all("div",{"class":"read-content j_readContent"})
 39
 40     content1=re.compile(r‘<p>([\s\S]*?)</p>‘)
 41
 42     content2=content1.findall(str(content))
 43
 44     content3=re.sub("</?\w+[^>]*>",‘‘,content2[0])
 45
 46     content4=content3.replace(‘。‘,‘。\n\n\0\0\0‘)  #到此,将章节内容获取完毕
 47
 48     contentname=re.compile(r‘<h3 class="j_chapterName">(.*?)</h3>‘)
 49
 50     contentname1=contentname.findall(str(soup))     #获取章节名称
 51
 52     book="----------------------------------------------------------------"+contentname1[0]+"------------------------------------------------------------\n\n\n"+content4
 53
 54     with open(load, ‘a‘) as f:
 55
 56         f.write(book)
 57
 58
 59
 60 def nextcontent(soup):
 61
 62     content=soup.find_all("div",{"class":"chapter-control dib-wrap"})
 63
 64     #print(str(content))
 65
 66     step=re.compile(r‘<a data-eid="qd_R109" href="(.*?)" id="j_chapterNext">‘)
 67
 68     content1=step.findall(str(content))
 69
 70     if content1 == []:
 71
 72         step1=re.compile(r‘<a data-eid="qd_R118" href="(.*?)" id="j_chapterNext">‘)
 73
 74         content2=step1.findall(str(content))
 75
 76         url="http:"+content2[0]
 77
 78         return url
 79     else:
 80         url="http:"+content1[0]
 81
 82         return url
 83
 84 def panduan(soup):
 85
 86     content=soup.find_all("div",{"class":"chapter-control dib-wrap"})
 87
 88     #print(str(content))
 89
 90     step=re.compile(r‘<a data-eid="qd_R109" href="(.*?)" id="j_chapterNext">‘)
 91
 92     content1=step.findall(str(content))
 93
 94     return content1
 95     #-------------------------------------------------------------------------
 96
 97
 98
 99     #-------------------------------------------------------------------------
100
101 while 1==1:
102     soup2=gethtml(url)
103     firsturl2=getbookurl(soup2)
104
105     for j in range(0,len(firsturl2)):
106         url="http:"+firsturl2[j]
107         soup1=gethtml("http:"+firsturl2[j])
108         bookname=re.findall(r‘<h1>(.*?)</h1>‘ ,str(soup1))
109         load="d:/88/%s.txt" % bookname[0]
110         i=0
111         while 1==1:
112             soup=gethtml(url)
113             getcontent(soup,load)
114             url=nextcontent(soup)
115             content1=panduan(soup)
116             i+=1
117             print("第%d章下载完成" % i)
118
119             if content1 == []:
120                 break
121
122             time.sleep(0.2)
123         print("-------------第%d本书下载完成---------" % int(j+1))
124     

学习ing!!!

时间: 2024-11-09 00:59:45

python 爬取qidian某一页全部小说的相关文章

使用python爬取csdn博客访问量

最近学习了python和爬虫,想写一个程序练练手,所以我就想到了大家都比较关心的自己的博客访问量,使用python来获取自己博客的访问量,这也是后边我将要进行的项目的一部分,后边我会对博客的访问量进行分析,以折线图和饼图等可视化的方式展示自己博客被访问的情况,使自己能更加清楚自己的哪些博客更受关注,博客专家请勿喷,因为我不是专家,我听他们说专家本身就有这个功能. 一.网址分析 进入自己的博客页面,网址为:http://blog.csdn.net/xingjiarong 网址还是非常清晰的就是cs

Python爬取京东商品数据

对京东某一商品信息页面的HTML代码进行分析,可以发现它的图书产品信息页面都含有这样一段代码(不同类的商品页面有些不同): window.pageConfig={compatible:true,searchType: 1,product:{"skuid":"11408255","name":"\u4f17\u795e\u7684\u536b\u661f\uff1a\u4e2d\u56fd\u7981\u533a","

python爬取B站千万级数据,发现了这些热门UP主的秘密!

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句. Python支持命令式程序设计.面向对象程序设计.函数式编程.面向切面编程.泛型编程多种编程范式.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收

Python爬取QQ空间好友说说并生成词云(超详细)

前言 先看效果图:  思路 1.确认访问的URL 2.模拟登录你的QQ号 3.判断好友空间是否加了权限,切换到说说的frame,爬取当前页面数据,下拉滚动条,翻页继续获取 爬取的内容写入本地TXT文件中 4.爬取到最后一页,读取TXT文件从而生成词云 具体分析 1.确认访问的URL 这就很简单了,我们通过观察发现,QQ空间好友的URL: https://user.qzone.qq.com/{好友QQ号}/311 2.我们在请求的时候会遇到模拟登录,也就是要通过Selenium+浏览器登录你的QQ

最后轻松一夏,周末利用python爬取“陈翔六点半”搞笑视频!

觉得程序员再忙也需要给自己安排一点娱乐时间,对自己好点,自己对自己不好,谁会? 自己娱乐一般会有:跑步.看电影.小视频,而小视频是最家常的娱乐方式,看得最多的小视频是「 陈翔六点半 」,咦! 拍得搞笑,演技也一流,也不乏有内涵!非常推荐大家看看. 时间太贵,我耗不起 正题 先上Python爬取小视频的效果图,duang.duang.duang.想下载什么就是什么,哈哈. 打开浏览器(电脑版,方便调试)输入微博 url 点击输入框,输入「陈翔六点半」,回车搜索 但是发现在这个页面就只用几个视频.滑

python爬取小视频,看完身体一天不如一天!

Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以在这里给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,都放在了文章结尾,欢迎前来领取!python爬取小视频记录学习python简单爬虫小程序,记录代码和学习过程环境信息python 2.7.12分析与步骤 要分析网站信息 http://www.budejie.com/video/ 查看网页不同页面的信息http://www.budejie.com/video/2http://www.budejie.

Python爬取链家二手房数据——重庆地区

最近在学习数据分析的相关知识,打算找一份数据做训练,于是就打算用Python爬取链家在重庆地区的二手房数据. 链家的页面如下: 爬取代码如下: import requests, json, time from bs4 import BeautifulSoup import re, csv def parse_one_page(url): headers={ 'user-agent':'Mozilla/5.0' } r = requests.get(url, headers=headers) so

python爬虫教程:《利用Python爬取表情包》

python爬虫教程:<利用Python爬取表情包>,微信没有表情包?不用愁!老师带领你使用多线程爬虫一键爬取20w的表情包~ python爬虫教程:<利用Python爬取表情包>,微信没有表情包?不用愁!老师带领你使用多线程爬虫一键爬取20w的表情包~ python爬虫教程:<利用Python爬取表情包>,微信没有表情包?不用愁!老师带领你使用多线程爬虫一键爬取20w的表情包~ python爬虫教程:<利用Python爬取表情包>,微信没有表情包?不用愁!

表哥用Python爬取数千条淘宝商品数据后,发现淘宝这些潜规则!

本文记录了笔者用 Python 爬取淘宝某商品的全过程,并对商品数据进行了挖掘与分析,最终得出结论. 项目内容 本案例选择商品类目:沙发. 数量:共 100 页 4400 个商品. 筛选条件:天猫.销量从高到低.价格 500 元以上. 项目目的 对商品标题进行文本分析,词云可视化 不同关键词 word 对应的 sales 的统计分析 商品的价格分布情况分析 商品的销量分布情况分析 不同价格区间的商品的平均销量分布 商品价格对销量的影响分析 商品价格对销售额的影响分析 不同省份或城市的商品数量分布