Python 爬蟲系列 糗事百科最熱段子

2021-09-09 04:34:12 字數 1932 閱讀 9320

1.獲取糗事百科url

末尾2指第2頁

2.分析頁面,找到段子部分的位置, 需要一點css和html的知識

3、編寫**

呼叫 publicheaders 檔案的方法

7from 爬蟲.publicheaders import

set_user_agent89

10#抓取網頁

11def

download(pagenum):

12 url = r'

'1314#

15for i in range(1,pagenum):16#

組裝url

17 new_url = url +str(pagenum)

18print

(new_url)19#

有的時候訪問某個網頁會一直得不到響應,程式就會卡到那裡,我讓他1秒後自動超時而丟擲異常

20 header =set_user_agent()

21while 1:

22try

:23 req = urllib.request.request(url=new_url,headers=header)

24 reponse = urllib.request.urlopen(req,timeout=1)

25break26#

httperror是urlerror的子類,在產生urlerror時也會觸發產生httperror。因此應該先處理httperror

對於抓取到的異常,讓程式停止1.1秒,再迴圈重新訪問這個鏈結,訪問成功時退出迴圈

30 time.sleep(1.1)

31except

urlerror as err:

32print

(err.reason)33#

正常訪問,則抓取網頁內容

34 html = reponse.read().decode('

utf-8')

35#找到所有的class名稱為content 的div

36 soup = beautifulsoup(html,"

html.parser")

37 contents = soup.findall("

div",)38#

# 迴圈遍歷儲存每一項,並儲存

39 with open("

e:\justforfun.txt

", "w"

) as f:

40for item in

contents:41#

有些內容不是utf-8格式

42try

:43 each_story =item.get_text()44#

print(type(each_story))

45f.writelines(each_story)

46except:47

pass

4、執行以下,結果如下:

python爬蟲糗事百科

coding utf 8 import urllib2 import re 工具類 class tools object remove n re.compile r n replace br re.compile r remove ele re.compile r re.s rs 引數,要進行替換的...

Python爬蟲 糗事百科

如果沒有這兩個庫 在命令列任意位置下 前提是你已經配置好了環境,這個網上大把,自行google pip install requests,pip install bs4 import beautifulsoup import requests from bs4 import beautifulsou...

爬蟲 糗事百科爬蟲

糗事百科爬蟲 寫這個爬蟲花了我相當相當多的時間,因為總是爬著爬著就看這糗事百科上的段子去了。環境 python 3.6 import csvimport json import random import requests from bs4 import beautifulsoup class qi...