使用requests+re來爬取豆瓣圖書!入門級爬蟲案例教程!

這兩天在知識星球上有球友在使用requests+re來爬豆瓣圖書的鏈接,書名及作者遇到了問題,雖然當時很快給他解決了,但由於我之前沒有寫這方面的文章,所以臨時決定補一篇這樣的文章。

首先需要說明的是,在數據抓取的時候,肯定是優先使用xpath,如果xpath不行再考慮正則或者bs4, 因為xpath簡單且高效!

概念性的東西這裡就不說了,我們直接來實戰,這裡只簡單說明一下,詳細的需要自己去查一下資料!

要爬取的圖書內容:

使用requests+re來爬取豆瓣圖書!入門級爬蟲案例教程!

爬取到的數據

使用requests+re來爬取豆瓣圖書!入門級爬蟲案例教程!


. 可以匹配除換行符外的字符re* 表示匹配0個或多個表達式re?匹配0個或多個由前面正則表達式定義的片段,非貪婪模式,且只匹配前一個

  1. 首先我們需要完全抓取,所以我們要使用re.findall方法,又因為數據全部在
  2. 中,需要只需要對這個裡面數據處理
  3. 然後每一列來匹配
  4. 因為還需要向後匹配查找,所以需要添加.*? 匹配一次,非貪婪模式. 等等匹配到cover下面的目錄,我們可以匹配到href,獲取再匹配標題,但alt包含標題,所以這裡直接來提取alt="(.*?)",
  5. 接著需要提取數據出來這裡使用(.*?) 把數據提出來,這裡有多個數據需要提取,然後用數組呈現出來
  6. 更多有趣代碼案例教程s私信小編01獲取呢
<code>import requests
import re
import sys
reload(sys)

sys.setdefaultencoding('utf-8')

url = 'https://book.douban.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)\\
Chrome/55.0.2883.87 Safari/537.36'}
html = requests.get(url, headers=headers)
html.encoding = 'utf-8'
# 這裡我只取了鏈接與標題
patter = re.compile('
  • (.*?)', re.S)
    titles = re.findall(patter, html.text)
    for each in titles:
       print '書籍鏈接:{},書籍標題:{},---書籍作者:{}'.format(each[0], each[1],each[2].str
  • /<code>


    分享到:


    相關文章: