仿手机端京东商城html源码_我用手机写了一个Python爬虫,爬下了凡人修仙传……...
前言
↓
舞劍很喜歡閱讀網絡小說。
凡人修仙傳,知北游,無限恐怖……等等,優秀的網絡小說很多,為此,我在三年前創辦了一個推書公眾號@無夢解書荒。
專門用來推薦我覺得好看的網絡小說。
小說爬蟲﹀﹀﹀
起因
老書蟲一般有兩個煩心事,第一,不知道看什么。第二,不知道去哪看。
第一個,可以去找推書公眾號,以及各大榜單掃榜。
第二個,就沒那么容易了。
翻開百度一搜,廣告橫行,彈窗關都關不完,閱讀體驗差的一批。
這時候,我們可以用 Python 爬蟲,將小說從網頁端爬取下來,整理成 TXT 文本,導入喜歡的閱讀APP觀看。
準備
舞劍前面介紹了兩款 Python 集成開發環境,分別是 QPython 和 Pydroid 。
這一次,就用 Pydroid 來爬取小說。
獲得 Pydroid * 1
Python 爬蟲,必須要觀看源碼,從源碼中尋找需要的資源與文本。可以直接用 Python 扒源碼,我這里建議用網頁源碼查看器,簡單直觀。
獲得 Alook瀏覽器 * 1
開始
?1?
獲取小說地址
①我這里準備爬取無限流小說《無限之僵尸真神》
②隨機選取網址:
http://m.9txs.com/book/61781.html
?2?
分析源碼地址
① 首先爬取第一章《山邊小村》的文本內容,點進去第一章,可以發現網址鏈接后綴改變了。
http://m.9txs.com/book/61781/868469.html
多出了 /868469.html。
② 用Milk瀏覽器打開網址,運行腳本,可以查看源碼。
?3?
爬取首頁 TXT 文本
① 爬取整頁源碼。
▼
舞劍這里準備使用 requests 庫,大家記得安裝好。
首先自定義方法 get_one _page(),用來爬取源碼并返回給 main() 方法。
接下來,在 main() 函數中輸出源代碼。
代碼如下:
import requests#獲取首頁源碼def get_one_page( url ): response = requests.get( url ) return response.text def main(): url = 'http://m.9txs.com/book/61781/868469.html' html = get_one_page( url ) print( html ) main()
②解析頁面,篩選內容。
▼
首先,來看看正文部分究竟在源碼的哪里。
嗯,在
…… 中間。章節標題在
正文內容在
至于作者與書名,我們暫時不需要。
③編寫代碼,提取內容
▼
這里準備使用 lxml 庫來爬取正文,沒安裝的小伙伴記得先安裝,很方便的。
首先,導入 lxml 庫的 etree 模塊。
然后,使用 etree 的 HTML() 方法來初始化源碼。
最后,使用xpath語法來抽取我們需要的內容。
這里,新建一個方法 parse_one _page() 用來爬取資源。
代碼如下:
#解析源碼,提取正文def parse_one_page( html ): html = etree.HTML( html ) #標題 title = html.xpath('//div[@id="main"]/h1/text()') #正文 content = html.xpath('//div[@id="main"]/div[@]//text()') print( title ) print( content )
需要的內容為 title(標題) 和 content(正文)。
這里的代碼輸出后,會得到兩個數組,分別記錄著標題和正文的內容。
內容如下所示:
['第1章 山邊小村']
['\n\t', '二愣子睜大著雙眼,直直望著茅草和爛泥糊成的黑屋頂,身上蓋 著的舊棉被,已呈深黃色,看不出原來的本來面目,還若有若無的散發著淡 淡的霉味。', '\n', '在他身邊緊挨著的另一人,是二哥韓鑄,酣睡的十分 香甜,從他身上不時傳來輕重不一的陣陣打呼聲。', '\n', '離床大約半丈 遠的地方,是一堵黃泥糊成的……', '……', '\n\t']
可以看到,這兩個數組的確是我們需要的內容。
那么,就剩下最終的一步,將 爬取的小說標題和正文保存到 TXT 文本中。
?4?
寫入文檔,保存為TXT
保存為 TXT 文本很簡單,只需要使用 Python 自帶的文件系統就可以了。
這里先新建一個方法 write_txt(), 用來保存 TXT文本。
接著使用內置方法,創建 txt 文件 凡人修仙傳.txt,設置參數為 a+,表示可以追加內容,最后使用 write()方法寫入即可。
代碼如下所示:
#保存TXT文本def write_txt( result ): with open( '/sdcard/凡人修仙傳.txt', 'a+' ) as f: f.write( result )
接下來,就是在 main() 方法中調用 write_txt()方法就行了,但這里有兩個問題:
① parse_one _page()方法返回的是列表(list),不能直接寫入到 TXT 文本中。
②列表正文(content)中,除了小說正文外,還包含了 "\n \t" 這些符號,必須要去除后再寫入 txt文檔,才不會影響閱讀體驗。
取出標題
▼
我們先取出 title(標題)中的內容, title 中只有一個內容,所以只需要使用下標為0的中括號就能取出,代碼如下所示:
write_txt( title[0] )
取出正文
▼
接著要取出 content(正文)中的內容, content 內部包含了換行符(\n)和制表符(\t),它們散落在每一段文字的開頭與結尾,這里直接使用 join() 方法,用 \n 將內容連接為 str(字符串)。
代碼如下所示:
write_txt( '\n'.join(content) )
最終會在手機根目錄生成 凡人修仙傳.txt 文本,打開后可以看到爬取的內容一切正常。
后記
就這樣,用 Python 爬蟲爬下了凡人修仙傳第一章的內容,是不是很簡單。
至于其他章節的內容,留在下一節繼續寫。
▼
另外,源碼很簡單,總共也就30行,如果有需要的小伙伴,可以后臺回復:爬蟲01,獲取本次的代碼。
▼
關于 Pydroid ,可以去翻翻我以前的文章,也可以后臺直接回復:0003, 免費領取。
▼
文中用到的 Alook,嫌麻煩的小伙伴可以用其他的 via 等瀏覽器取代,只要可以查看源碼就行。
當然,也可以后臺回復:0008,或者直接回復: Alook, 即可免費獲取。
推薦閱讀:?
① 只用手機,我學會了編程!
② 手機編程,該用什么輸入法?
③ 手機端最強編程APP,開箱即用,功能強大!
④ 吊打AIDE的Java開發環境,支持Maven、JDK11,速進!
⑤ 手機編寫C語言神器,集成gcc插件,可導出為APK!
關于我
作者:舞劍,專注手機編程的程序猿!
我是舞劍,舞刀弄劍的那個舞劍。我不是專業程序猿,只是一心熱愛、探究這個神秘的領域!
在我看來,程序員就像古代的巫師,只需要按下神秘的代碼,奇跡就會發生。
微信公眾號:
手機編程
知乎號/簡書號/掘金號:
手機編程
網站
手機編程
總結
以上是生活随笔為你收集整理的仿手机端京东商城html源码_我用手机写了一个Python爬虫,爬下了凡人修仙传……...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OC10_代理反向传值
- 下一篇: AI安全之对抗样本入门 (智能系统与技术