使用正則表示式爬取古詩文網唐詩300首
思路
先從唐詩300首頁面獲取所有唐詩詳情頁的連結;
再從每一首唐詩的詳情頁提取標題、作者、朝代、內容等資訊。
原始碼
# !/usr/bin/env python
# -*- coding:utf-8 -*-
import re
import requests
def crawl(start_url):
base_url='http://so.gushiwen.org'
req_headers={
'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}
res=requests.get(start_url,headers=req_headers)
if res.status_code==requests.codes.ok:
html=res.text
# 獲取所有詩的連結
parttern_href=re.compile(r'<span><a href="(.*?)".*?</span>',flags=re.DOTALL)
hrefs=re.findall(parttern_href,html)
# 獲取每一首詩的內容,並儲存到本地
with open('唐詩300首.txt',mode='a',encoding='utf-8') as f:
for href in hrefs:
href=base_url+href
res=requests.get(href,headers=req_headers)
if res.status_code == requests.codes.ok:
html = res.text
# 標題
parttern_title = re.compile(r'<div class="cont">.*?<h1 .*?>(.*?)</h1>', re.DOTALL)
title=re.search(parttern_title,html).group(1)
# 朝代
parttern_dynasty = re.compile(r'<div class="cont">.*?<p class="source"><a href=".*?">(.*?)</a><span>:.*?</p>', re.DOTALL)
dynasty=re.search(parttern_dynasty,html).group(1)
# 詩人
parttern_author = re.compile(r'<div class="cont">.*?<p class="source">.*?:</span><a href=".*?">(.*?)</a> </p>', re.DOTALL)
author=re.search(parttern_author,html).group(1)
# 內容
parttern_content = re.compile(r'<div class="cont">.*?<div class="contson" id=".*?">(.*?)</div>', re.DOTALL)
content=re.search(parttern_content,html).group(1)
content=re.sub(r'<br />','\n',content)
content=re.sub(r'<p>','',content)
content=re.sub(r'</p>','',content)
print('正在獲取 {title}'.format(title=title))
f.write('{title}\n{dynasty}:{author}\n{content}\n'.format(title=title,dynasty=dynasty,author=author,content=content))
if __name__ == '__main__':
start_url='http://so.gushiwen.org/gushi/tangshi.aspx'
crawl(start_url)
執行結果
相關推薦
使用正則表示式爬取古詩文網唐詩300首
思路 先從唐詩300首頁面獲取所有唐詩詳情頁的連結; 再從每一首唐詩的詳情頁提取標題、作者、朝代、內容等資訊。 原始碼 # !/usr/bin/env python # -*- coding:utf-8 -*- import re import r
用Requests和正則表示式爬取豆瓣圖書TOP250
思路和上文大同小異。 import requests from requests.exceptions import RequestException import re import json headers = {'User-Agent':'Mozilla/5.0(Macinto
用Requests和正則表示式爬取貓眼電影(TOP100+最受期待榜)
目標站點分析 目標站點(貓眼榜單TOP100): 如下圖,貓眼電影的翻頁offset明顯在URL中,所以只要搞定第一頁的內容加上一個迴圈加上offset就可以爬取前100。 流程框架 1、抓取單頁內容 利用requests請求目標站點,得到單個網頁HTML程式碼,返回結
自學python爬蟲(四)Requests+正則表示式爬取貓眼電影
前言 學了requests庫和正則表示式之後我們可以做個簡單的專案來練練手咯!先附上專案GitHub地址,歡迎star和fork,也可以pull request哦~ 地址:https://github.com/zhangyanwei233/Maoyan100.git 正文開始哈哈哈
requests正則表示式爬取貓眼電影
目標 通過Request+正則表示式爬取貓眼電影TOP100電影的排名、名字、電影封面圖片、主演、上映時間、貓眼評分,將爬取的內容寫入檔案中。 流程框架 進入到貓眼電影TOP100的頁面,此時的URL為http://maoyan.com/board/4,點選第2頁,會發現此時的URL為http://ma
requests+正則表示式爬取豆瓣讀書top250
簡單的python練手專案,通過rquests庫請求得到豆瓣top250網頁原始碼,並通過正則表示式匹配得到對應資訊-書名,作者資訊,評分以及簡介。 網站的URL為’https://book.douban.com/top250?start=0’,但我們拉到底部發現250本讀書的資訊被分成了1
14-Requests+正則表示式爬取貓眼電影
'''Requests+正則表示式爬取貓眼電影TOP100''''''流程框架:抓去單頁內容:利用requests請求目標站點,得到單個網頁HTML程式碼,返回結果。正則表示式分析:根據HTML程式碼分析得到電影的名稱、主演、上映時間、評分、圖片連結等資訊。儲存至檔案:通過檔案的形式儲存結果,每一部電影一個結
Python爬蟲實戰之Requests+正則表示式爬取貓眼電影Top100
import requests from requests.exceptions import RequestException import re import json # from multiprocessing import Pool # 測試了下 這裡需要自己新增頭部 否則得不到網頁 hea
Python爬蟲-利用正則表示式爬取貓眼電影
利用正則來爬去貓眼電影 =================================== ===================================================== 1 ''' 2 利用正則來爬去貓眼電影 3 1. url: http://maoya
通過分析ajax,使用正則表示式爬取今日頭條
今日頭條是一個動態載入頁面的網站,這一類的網站直接使用requests爬取的話得不到我們想要的內容。所以一般這類的網站都是通過分析ajax來進行抓包來獲取我們想要的內容。 老規矩,首先列出需要引入的庫: import json import os from urllib.
利用Requests庫和正則表示式爬取豆瓣影評Top250
說明 最近看了下爬蟲基礎,想寫個部落格來記錄一下,一來是可以方便和我一樣剛入門的小白來參考學習,二來也當做自己的筆記供自己以後查閱。 本文章是利用python3.6和Requests庫(需自行安裝,cmd裡執行pip install r
Requests+正則表示式爬取貓眼TOP100電影
需要著重學習的地方:(1)爬取分頁資料時,url連結的構建(2)儲存json格式資料到檔案,中文顯示問題(3)執行緒池的使用(4)正則表示式的寫法 import requests from requests.exceptions import RequestException import re im
[python] 常用正則表示式爬取網頁資訊及分析HTML標籤總結
這篇文章主要是介紹Python爬取網頁資訊時,經常使用的正則表示式及方法。它是一篇總結性文章,實用性比較大,主要解決自己遇到的爬蟲問題,也希望對你有所幫助~ 當然如果會Selenium基於自動化測試爬蟲、BeautifulSoup分析網頁DOM節點,這就更方便了,但本文更多
使用正則表示式爬取500px上的圖片
網址:https://500px.com/seanarcher,seanarcher是一個up主的名字 開啟這個網址,會發現有好多圖片,具體到每一個圖片的url地址 https://500px.com/photo/273383049/galya-by-sean-archer,其中
Requests+正則表示式爬取貓眼電影top100
#!/usr/bin/python #coding=utf-8 # import requests from requests.exceptions import RequestException import re import json from multiproces
正則應用--爬取天堂圖片網圖片(普通版本,函式版本,類版本)
第一部分:普通版本一.os包的用法先引入import os# 如果資料夾不存在,建立資料夾 if not os.path.exists(title): # 建立資料夾 os.makedirs(title)二.用urlopen發起請求 發
python正則表示式爬取豆瓣圖書資訊
import requests import re content = requests.get('https://book.douban.com/').text pattern = re.compile('<li.*?cover.*?href="(.*?)".*?ti
Python網路爬蟲:利用正則表示式爬取豆瓣電影top250排行前10頁電影資訊
在學習了幾個常用的爬取包方法後,轉入爬取實戰。 爬取豆瓣電影早已是練習爬取的常用方式了,網上各種程式碼也已經很多了,我可能現在還在做這個都太土了,不過沒事,畢竟我也才剛入門…… 這次我還是利用正則表示式進行爬取,怎麼說呢,有人說寫正則表示式很麻煩,很多人都不
【Python】Requests+正則表示式 爬取貓眼電影TOP100
1.先獲取到一個頁面,狀態碼200是成功返回 def get_one_page(url): # 獲取一個頁面 try: response = requests.get(url) if response.status_cod
python網路爬蟲例項:Requests+正則表示式爬取貓眼電影TOP100榜
一、前言 最近在看崔慶才先生編寫的《Python3網路爬蟲開發實戰》這本書,學習了requests庫和正則表示式,爬取貓眼電影top100榜單是這本書的第一個例項,主要目的是要掌握requests庫和正則表示式在實際案例中的使用。 二、開發環境 執行平