1. 程式人生 > >【Python3.6】糗事百科爬蟲

【Python3.6】糗事百科爬蟲

程式碼連結:https://gitee.com/AI-Echo/codes/kox2aqn4jwi8c6b70l91e25

糗百段子在這樣的div標籤中,


這裡寫圖片描述

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
import requests
from bs4 import BeautifulSoup as bs

#檢查url是否為有效連結(以後補)

#讀取html頁面
def getHtml(parm):
    #加上headers,偽裝成瀏覽器,因為有的網站有反爬措施
Headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'} url='https://www.qiushibaike.com/hot/page/'+str(parm) #request物件,傳送一個request請求 reponse=requests.get(url,headers=Headers) #返回reponse,讀取伺服器響應的內容,可通過reponse.encoding指定編碼格式
html=reponse.text return html #解析html頁面 def parseHtml(parm): html=getHtml(parm) soup = bs(html,"html.parser") #新建BeautifulSoup物件 #find_all用法: #soup.find_all("p", "title") #返回值:[<p class="title"><b>The Dormouse's story</b></p>] cont=soup.find_all('div'
,'content') #print(soup.find_all('div','content')) items=[] for x in cont: #get_text()方法:用來獲取標籤裡面的文字內容,在括號裡面加"strip=True"可以去除文字前後多餘的空格 items.append(x.get_text(strip=True)) #print(items) return items #按任意鍵逐條列印段子 def getAll(parm): num=0 for x in parseHtml(parm): num += 1 print("第%d頁第%d條:\n%s\n" %(parm,num,x)) #按回車鍵繼續,python2中為raw_input if input("按回車鍵繼續閱讀下個段子..."): pass parm+=1 getAll(parm) if __name__ == '__main__': #從第一頁開始 getAll(1)