1. 程式人生 > >古詩文網站的網絡爬蟲編寫方式,通過網絡爬蟲抓去內容

古詩文網站的網絡爬蟲編寫方式,通過網絡爬蟲抓去內容

請求 int rip arm print col re.sub 輸出 parse

1. 以下就是古詩文網站的爬蟲代碼,請看:

# encoding:utf-8
import requests
import re
import json
 
 
def parse_page(url):
    # 1.請求網站
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36"
    }
    response = requests.get(url, headers=headers)
    text = response.text
    # 2.解析網站
    titles = re.findall(r'<div\sclass="cont">.*?<b>(.*?)</b>', text, re.DOTALL)
    # print json.dumps(titles, encoding="utf-8", ensure_ascii=False)
    times = re.findall(r'<p\sclass="source">.*?<a\s.*?>(.*?)</a>', text, re.DOTALL)
    # print json.dumps(times, encoding="utf-8", ensure_ascii=False)
    authors = re.findall(r'<p class="source">.*?<a.*?<a.*?>(.*?)</a>', text, re.DOTALL)
    poems_ret = re.findall(r'<div class="contson" id=.*?>(.*?)</div>', text, re.DOTALL)
    poems = []
    for poem in poems_ret:
        temp = re.sub("<.*?>", "", poem)
        poems.append(temp.strip())
    # for index, value in enumerate(titles):
    #     print titles[index]
    #     print times[index]
    #     print authors[index]
    #     print poems[index]
    #     print "*"*50
    # zip函數自動實現上述組合
    results = []
    for value in zip(titles, times, authors, poems):
        title, time, author, poem = value
        result = {
            "標題": title,
            "朝代": time,
            "作者": author,
            "原文": poem
        }
        print result["標題"]
        results.append(result)
    # print results
 
 
def main():
    url_base = "https://www.xzslx.net/gushi/"
    for i in range(1, 11):
        url = url_base.format(i)
        print " "*20+"優美古詩文"+" "*20
        print "*"*50
        parse_page(url)
        print "*"*50
 
 
if __name__ == '__main__':
    main()


2. 輸出來的結果是:

C:\DDD\python22\python.exe C:/PyCharm/dytt_spider/poems.py
                    古詩文                    
**************************************************
關山月
明月出天山,蒼茫雲海間。
長風幾×××,吹度玉門關。 
漢下白登道,胡窺青海灣。
[2] 由來征戰地,不見有人還。
戍客望邊邑,思歸多苦顏。 
高樓當此夜,嘆息未應閑。
**************************************************
                    古詩文                    
**************************************************
隴西行四首·其二
誓掃匈奴不顧身,五千貂錦喪胡塵。
可憐無定河邊骨,猶是春閨夢裏人!
**************************************************
                    古詩文                    
**************************************************
嫦娥(嫦娥應悔偷靈藥)
雲母屏風燭影深, 長河漸落曉星沈。 嫦娥應悔偷靈藥, 碧海青天夜夜心。
**************************************************

Process finished with exit code 0




古詩文網站的網絡爬蟲編寫方式,通過網絡爬蟲抓去內容