1. 程式人生 > >Python爬蟲之爬取內涵吧段子(urllib.request)

Python爬蟲之爬取內涵吧段子(urllib.request)

引言

在寒假開始的時候就打算學習爬蟲了,但是沒有想到一入坑到現在還沒有出坑,說多了都是淚 T_T
我準備介紹的這個庫是我初學爬蟲時候用到的,比較古老,所以我只用了一兩次就轉向了requests了

urllib.request

這個庫在python2.7之中其實是被稱為urllib2,但是到了python3之後這個庫就取消了,變成了urllib的一個內建了,當然啦,用法還是和之前的urllib2沒有什麼區別。
單純的使用urllib.request.urlopen()其實已經實現一些基本的請求了,不過如果一般要構建完整請求的時候一般要需要用上Request()函式,簡單的貼一下程式碼。

req = urllib.request.Request(url,headers = headers)
response = urllib.request.urlopen(req)

而這裡的response就是伺服器返回的請求了。

正則表示式

最終想想還是要講講正則表示式,正則表示式簡單粗暴,我一開始簡直迷上了正則的力量,哦,當然,後面在美麗的湯的和xpath的勾引下。。。咳咳咳
正則表示式我就不具體多講,大家可以去翻翻一些其他人的部落格或者官方文件查閱一下即可。
這裡有一篇不錯的他人的部落格可以查閱的點選這裡

實踐

單純的講解是非常枯燥無聊的,作為一個熱好實踐的實踐黨,每一次學習必備的就是實戰,這次的實戰題目就是爬取內涵吧的小說段子。

準備

url = http://www.neihanpa.com/article/
python 版本 3.6.3
paltform:win32
使用模組urllib.request、re、os

觀察將要爬取的網站

這裡寫圖片描述
不難發現其中的對應關係。
這裡寫圖片描述

開始敲我們的程式碼

敲好了開頭,先輸出看看
這裡寫圖片描述
看上去效果不錯,但是輸出了一丟雜湊值是什麼鬼?我們換一種編碼試試。
這裡寫圖片描述
成功的輸出了中文,好我們繼續接下來的工作,進行匹配。

正則匹配

經過觀察這一段在不斷的重複
這裡寫圖片描述

於是我把它copy到我的程式碼裡去。

這裡寫圖片描述

看看輸出的結果,嗯看上去還不錯(因為我比較懶,所以喜歡暴力的[\w\W]+?)

這裡寫圖片描述

該把我們要的取出來了,只要在需要的東西打小括號就好了。

這裡寫圖片描述

為什麼要去除那個html呢?可能有人會問了,這個問題你只要點進去那一個段子,再看看它的url就明白了。

開始進行url的拼接

現在我們獲得了我們想要的了,我們開始拼接我們要的url,然後進行同樣的一波操作,在此我打算用一個txt檔案來儲存段子內容。
這裡寫圖片描述

好,我們輸出來看看。

這裡寫圖片描述

嗯,發現中間穿插了圖片,但是這不重要,我們並不需要圖片,然後我們再仔細觀察一下規則。

這裡寫圖片描述

發現出現了不少\r\n\t甚至還有\u3000,大家可能不知道什麼是\u3000,不知道大家知不知道\x20這個是ASCII中的空白格,那麼很簡單\u3000就是Unicode中的空格之一,然後我們發現最後一行並不是我們想要的,於是把它刪去。
再次輸出:

這裡寫圖片描述

發現已經差不多了,但是還是有些不完美。

這裡寫圖片描述

我們使用replace()函式將其去掉。

這裡寫圖片描述

好了,到了這裡基本就是實現了

最後附加

這時我又誕生想法了,我不想單單抓這一頁了,我想抓多幾頁了(人類的慾望果然時無限的@[email protected]
好,這個時候我們繼續觀察,
這裡寫圖片描述
到了第二頁變成了索檢二?再嘗試一下,果然如此,於是我們再寫個函式,拼接出頁數的url,然後再進行簡單的互動,讓使用者輸入起始頁和終止頁,也可以當每一頁儲存完成的時候,輸出第幾頁儲存完成.
這裡寫圖片描述

結語:

回頭看看自己一開始寫的程式碼發現一開始的自己挺菜的。。。嗯。。。是真的,也幸好我的學習方式沒有錯誤,從最簡單的正則開始學習,然後後面才學bs4之類的,不然的話估計基礎不是那麼好。
想要完整的程式碼可以點選下面哦:
https://github.com/Don98/Don98.github.io/tree/master/spider_project
對了,忽然想起,如果有人問為什麼os模組我沒有用到,我還匯入了的話,我的回答就是,本來想用來建立資料夾的,不過最後忘了用到而已。

相關推薦

Python爬蟲內涵段子urllib.request

引言 在寒假開始的時候就打算學習爬蟲了,但是沒有想到一入坑到現在還沒有出坑,說多了都是淚 T_T 我準備介紹的這個庫是我初學爬蟲時候用到的,比較古老,所以我只用了一兩次就轉向了requests了

Python爬蟲煎蛋網妹子圖

創建目錄 req add 註意 not 相同 esp mpi python3 這篇文章通過簡單的Python爬蟲(未使用框架,僅供娛樂)獲取並下載煎蛋網妹子圖指定頁面或全部圖片,並將圖片下載到磁盤。 首先導入模塊:urllib.request、re、os import

python3 學習 3:python爬蟲動態載入的圖片,以百度圖片為例

轉: https://blog.csdn.net/qq_32166627/article/details/60882964 前言: 前面我們爬取圖片的網站都是靜態的,在頁面中右鍵檢視原始碼就能看到網頁中圖片的位置。這樣我們用requests庫得到頁面原始碼後,再用bs4庫解析標籤即可儲存圖片

Python爬蟲各大幣交易網站公告——靜態網站.md

Python爬蟲之爬取各大幣交易網站公告——靜態網站 瞭解爬蟲之後,我們也漸漸掌握了根據網站的種類選擇不同庫來對其進行處理,提取我們想要的東西。 靜態網站,我們往往利用requests庫提取網站html資訊,再通過正則表示式或BeautifulSoup庫提取我們

Python爬蟲__圖片和文字

1. 爬取圖片 1.1 前言 我當年年少,還不知道爬蟲這個東西,又想把書法圖片儲存下來,於是一張張地把圖片另存為,現在用爬蟲來爬取每一樓的書法圖片,解放一下人力: 1.2 爬取圖片的流程可以總結如下: 1)爬取網頁的ht

python學習7python爬蟲動態載入的圖片,以百度圖片為例

前言: 前面我們爬取圖片的網站都是靜態的,在頁面中右鍵檢視原始碼就能看到網頁中圖片的位置。這樣我們用requests庫得到頁面原始碼後,再用bs4庫解析標籤即可儲存圖片到本地。 當我們在看百度圖片時,右鍵–檢查–Elements,點選箭頭,再用箭頭點選圖片時

Python爬蟲動態頁面資料

很多網站通常會用到Ajax和動態HTML技術,因而只是使用基於靜態頁面爬取的方法是行不通的。對於動態網站資訊的爬取需要使用另外的一些方法。 先看看如何分辨網站時靜態的還是動態的,正常而言含有“檢視更多”字樣或者開啟網站時下拉才會載入內容出來的進本都是動態的,簡便的方法就是在

Python爬蟲入門——圖片

最近忽然想聽一首老歌,“I believe” 於是到網上去搜,把幾乎所有的版本的MV都看了一遍(也是夠無聊的),最喜歡的還是最初版的《我的野蠻女友》電影主題曲的哪個版本,想起女神全智賢,心血來潮,於是就想到了來一波全MM的美照,哪裡有皁片呢?自然是百度貼吧了。 放上鍊接-—

Python爬蟲知乎帖子並儲存到mysql以及遇到問題和解決方法

爬取問題標題並儲存到資料庫: 程式碼: # coding=utf-8 import urllib import urllib2 import re import MySQLdb #co

Python爬蟲瓜子二手車資訊- requests方法

最近在做二手車市場資料分析,試著爬取瓜子二手車在售車輛資訊,做一下記錄 大致思路如下: 2、從a連結頁面獲取每輛車詳情頁的連結b 3、進入b抓取我需要的車輛資訊:     car_model = Field() # 車型資訊 registe

小白爬蟲入門——圖片和文字超詳細

第一步 ,看網頁結構 F12開啟開發者模式,大致網頁結構如下,看圖: 下面這個圖片是針對一個tr標籤的詳解,程式碼與顯示一一對應: 第二步 ,程式碼解釋 lxml簡單使用 在自己想爬取的文字位置上單擊右鍵,選擇copy–>Xp

Python爬蟲利用正則表達式內涵

file res start cnblogs all save nts quest ide 首先,我們來看一下,爬蟲前基本的知識點概括 一. match()方法: 這個方法會從字符串的開頭去匹配(也可以指定開始的位置),如果在開始沒有找到,立即返回None,匹配到一個結果

Python網路爬蟲淘寶網頁頁面 MOOC可以執行的程式碼

可以實現功能的全部程式碼: import requests import re def getHTMLText(url): try: r = requests.get(url, timeout = 30) r.raise_for_statu

python初級實戰系列教程《一、爬蟲網頁、圖片、音視訊》

python基礎知識可以到廖雪峰大佬的官網學習哦! 廖雪峰官網網址 學完python就開始我們的實戰吧!首先我們就來學習下python爬蟲 學習Python爬蟲,先是介紹一個最容易上手的庫urll

python爬蟲實戰 汽車家上車型價格

相關庫 import pymysql import pymysql.cursors from bs4 import BeautifulSoup import requests import random

Python爬蟲:抓內涵段子1000張搞笑圖片-上篇爬蟲誕生篇

  出於興趣,在《幕課網:Python 開發簡單爬蟲》上學習了點兒 Python 爬蟲的入門知識,跟著視訊教程抓取了百度百科的 1000 個頁面。然後自己嘗試抓取一個國外網站的資料,但可能是由於最近召開

爬蟲原始碼

在做爬蟲工作之前,永遠先做好筆記: 確定要爬取的url,爬取的具體內容是什麼,用什麼形式展現爬取到的內容。 部落格的標題大家也看到了,爬取的是貼吧的原始碼,也就是說任何貼吧的原始碼都能爬。 不光第一頁還要爬,第二頁第三頁……都要爬。 確定了上面的內容,那就可以開始程式碼的編寫了。 我最近在玩穿越火線

python 3.3 爬蟲圖片

今天沒事用BeautifulSoup寫了一個爬取淘寶頁面的部分圖片的程式碼,之前用正則也寫了一個,感覺用BeautifulSoup 更簡單了 import urllib import urllib.request as request from bs4 import Bea

python爬蟲(13)百度貼帖子

爬取百度貼吧帖子 一開始只是在網上看到別人寫的爬取帖子的文章,然後自己就忍不住手癢自己鍛鍊一下, 然後照著別人的寫完,發現不太過癮, 畢竟只是獲取單個帖子的內容,感覺內容稍顯單薄,然後自己重新做了修改,把它變成重寫成了一個比較強大的爬蟲 精簡版本 簡介  通過帖子的地址,獲

python爬蟲系列百度文庫

一、什麼是selenium 在爬取百度文庫的過程中,我們需要使用到一個工具selenium(瀏覽器自動測試框架),selenium是一個用於web應用程式測試的工具,它可以測試直接執行在瀏覽器中,就像我們平時用瀏覽器上網一樣,支援IE(7,8,9,10,11),firefo