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...