python爬蟲之糗事百科文字笑話
阿新 • • 發佈:2019-02-12
##執行環境
python:python3.6.5
IDE:pycharm
##依賴模組
request,re
##實現目的
實現從糗事百科網站上爬取所有的文字笑話,以txt的文字儲存在程式所在資料夾內
原始碼可以直接執行
##原始碼
import requests
import re
#設定UA,模擬瀏覽器正常訪問
head={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
#獲取網頁
def get_page (url):
try:
response=requests.get(url,headers=head)
#判斷網頁狀態碼,是否正確獲取網頁
if response.status_code==200:
#返回解析後的網頁
return response.text
return None
except Exception:
#提示資訊
print('出現錯誤,請檢查重試')
def parse_page(html):
print('正在解析資料.....' )
#正則表示式,規則書寫
req_pattern = re.compile(
'<div class="article block untagged mb15 typs.*?>.*?class="content".*?span>(.*?)</span>',
re.S)
#查詢符合正則的內容
joke_texts=re.findall(req_pattern,html)
print('正在寫入文字.......')
save_to_text(joke_texts)
def save_to_text (joke_texts):
#檔案寫入
with open('糗事百科.txt', 'a+', encoding='utf-8') as f:
for i in range(0, len(joke_texts)):
k = joke_texts[i].replace('<br/>', '\n')
f.write(k)
def main(page):
url='https://www.qiushibaike.com/text/page/{}/'.format(page)
print('正在請求第{}頁資料...'.format(page))
html=get_page(url)
if html:
parse_page(html)
if __name__ == '__main__':
for i in range(1,14):
main(i)
print('資料寫入完成,請愉快閱讀')
效果如下