
python小白爬虫小说1:说明当我们新手小白进入到爬虫的初学者阶段时有一定的爬虫知识储备就想着爬点什么东西来练手又没有什么好的指导这里看完那里看这里也不是老师教的类型那里也不是那么好的机会不久来了嘛。2步入当你看到这篇文章时说明你已经有了一定的爬虫知识那么对网页的分析也有了一定的了解这里就不细细简介了。本次我们要爬的网站是丛横中文网我们从中任意选择一篇你喜欢的文章获取他的url3:代码接下来就是代码的书写# 首先导入我们必须要的库importrequestsfrombs4importBeautifulSoup# 此处是请求头的完善headers{***#此处省略}# 这是我们要获取数据的初始网页链接current_urlhttps://read.zongheng.com/chapter/1296262/74506344.html# 4. 首次请求初始页面responserequests.get(urlcurrent_url,headersheaders)# 因为是通过get请求的方式传递数据此处我们需要用到的就是库中的get方法而不是post方法print(response)# 此处我们查看是否在请求方面完善打印反馈给我们的response查看状态码是否为200如果不是那就说明不够完善要么在请求头中缺失必有得参数或者存在载荷等重用的必要参数在上述的代码中我们获取了必要的请求参数并且得到了状态码为正常我们再次分析要如何拿到我们需要的东西也就是小说文字部分我们可以通过response中的text文本也就是初始页面的html代码response.encodingresponse.apparent_encoding# 自动识别编码避免乱码soupBeautifulSoup(response.text,html.parser)# 解析HTMLprint(response.text)当我们得到该网页的html后再次分析文字内容具体在哪里分析后发现小说的内容在一个id为##的div中# 定位class为content的div再获取所有p标签content_divsoup.find(div,class_*)# 找到目标divifcontent_div:p_tagscontent_div.find_all(p)# 获取div内所有p标签# 打印每个p标签的文本内容forpinp_tags:print(p.get_text(stripTrue))# stripTrue去除首尾空白print()else:print(未找到class为content的div)那么在这里我们就获取了本页的所有小说内容但是我们发现我们是来获取小说的而不是获取某一页的所以要获取所有的小说内容我们可以通过一个while循环来获取自己所需要的页数并且还要通过分析来找到下一页的url的链接在此前我们需要解释一下我们点击下一页时分析cookie值不一样了我们可以同过一个创建对话来自动处理cookie值的更新importrequestsfrombs4importBeautifulSoup count0user_exitinputint(input(请输入你要结束的章节))# 创建会话自动处理Cookie更新sessionrequests.Session()# 初始页面urlcurrent_urlhttps://read.zongheng.com/chapter/1296262/74506344.htmlwhilecountuser_exitinput:headers{***}# 首次请求初始页面responsesession.get(current_url,headersheaders)response.encodingresponse.apparent_encoding# 自动识别编码避免乱码soupBeautifulSoup(response.text,html.parser)# 解析HTML# 定位class为content的div再获取所有p标签content_divsoup.find(div,class_content)# 找到目标divifcontent_div:p_tagscontent_div.find_all(p)# 获取div内所有p标签# 打印每个p标签的文本内容forpinp_tags:print(p.get_text(stripTrue))# stripTrue去除首尾空白print()else:print(未找到class为content的div)# 提取下一章链接reader_bottomsoup.find(div,class_*)ifnotreader_bottom:print(未找到reader-bottomdiv)exit()next_chapter_areader_bottom.find(a,string下一章)ifnotnext_chapter_a:print(未找到下一章a标签)exit()current_urlhttps://read.zongheng.comnext_chapter_a.get(href)count14反思最后就是对本次训练的反思我们首先通过获取第一页的小说内容分析再在此次的基础上获取下一页的内容以此类推获取自己想要的页数