爬虫练习-爬取《斗破苍穹》全文小说
前言:
爬取《斗破蒼穹》全文小說(shuō)
 目標(biāo):
本文為整理代碼,梳理思路,驗(yàn)證代碼有效性——2019.12.8
環(huán)境:
 Python3(Anaconda3)
 PyCharm
 Chrome瀏覽器
主要模塊:
 re
 requests
 time
1.
分析欲要爬取網(wǎng)頁(yè)的網(wǎng)址及其結(jié)構(gòu),打開(kāi)Chrome開(kāi)發(fā)者工具,如下圖我們分析得出http://www.doupoxs.com/doupocangqiong/1.html這里的數(shù)字1即為小說(shuō)章節(jié)數(shù),那么我們可以通過(guò)fomat的方式對(duì)小說(shuō)章節(jié)鏈接進(jìn)行遍歷
 
 通過(guò)最后一個(gè)li標(biāo)簽或者網(wǎng)頁(yè)最后的章節(jié)可知,這里有1646章,那么我們的表達(dá)式為urls = ['http://www.doupoxs.com/doupocangqiong/{}.html'.format(str(i)) for i in range(1, 1647)]
 
2.
用正則表達(dá)式匹配獲取小說(shuō)內(nèi)容
 分析第一章的網(wǎng)頁(yè)結(jié)構(gòu)可以知道小說(shuō)內(nèi)容均在標(biāo)簽<p>內(nèi),即我們的正則表達(dá)式為contents = re.findall('<p>(.*?)</p>', html, re.S)
 
3.
將小說(shuō)內(nèi)容保存到一文本文件中
 保存過(guò)程比較簡(jiǎn)單,“將大象裝進(jìn)冰箱”三步
A.數(shù)據(jù)截圖
 
B.完整代碼
#!/usr/bin/env python # -*- coding: utf-8 -*-# 導(dǎo)入相應(yīng)的庫(kù)文件 import requests import re import time# 加入請(qǐng)求頭 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ''AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}# 定義獲取信息的函數(shù) def get_info(url):res = requests.get(url, headers=headers)html = res.content.decode('utf-8')print(url, res.status_code)if res.status_code == 200: # 判斷請(qǐng)求碼是否為200contents = re.findall('<p>(.*?)</p>', html, re.S)for content in contents:new_con = str(content).replace('</p>', '').replace('<p>', '')f.write(new_con+'\n') # 正則獲取數(shù)據(jù)寫(xiě)入TXT文件中f.write("---------------------------------\n" # 分割線"---------------------------------\n""---------------------------------\n")# 程序主入口 if __name__ == '__main__':# 構(gòu)造多頁(yè)URLurls = ['http://www.doupoxs.com/doupocangqiong/{}.html'.format(str(i)) for i in range(1, 1647)]# 新建TXT文檔,追加的方式f = open('doupo.txt', 'a+')for url in urls:get_info(url) # 循環(huán)調(diào)用get_info()函數(shù)time.sleep(1) # 睡眠1秒f.close() # 關(guān)閉TXT文件總結(jié)
以上是生活随笔為你收集整理的爬虫练习-爬取《斗破苍穹》全文小说的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: 活着
 - 下一篇: 267019条猫眼数据加持,原来你是这样