日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬虫方法三部曲

發(fā)布時間:2023/12/31 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬虫方法三部曲 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?最近研究如何利用爬蟲技術(shù),抓取圖書銷量和店面信息。使用幾個方法都沒有抓到<span>標簽下面的數(shù)值是空值,是不是做了反爬蟲機制處理。剛好利用這個機會來復習一下爬蟲三種方法。純屬個人愛好,不用于商用。希望有網(wǎng)友能告訴我為什么span的值是空值。

目錄

抓取的網(wǎng)站

爬蟲目的

挖坑路程

總結(jié)思路


抓取的網(wǎng)站

http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input

網(wǎng)站的源碼:

爬蟲目的

抓取網(wǎng)站里面各個商鋪的名字、書名、還有價格、還有簡介。

挖坑路程

方法一

用BeautifulSoup模塊進行抓取。【bs方法抓取很快,上手也很快。看一下源代碼的架構(gòu)就模仿出來進行抓取。不管是抓標簽p,標簽a,標簽li等標簽內(nèi)容。注意抓取的select方法,是逐級往下進行篩選。】

import requests import urllib.request from bs4 import BeautifulSoupdef get_html(url):headers = {'User-Agent': 'Mozilla/5.0(Macintosh; Intel Mac OS X 10_11_4)\AppleWebKit/537.36(KHTML, like Gecko) Chrome/52 .0.2743. 116 Safari/537.36'} # 模擬瀏覽器訪問response = requests.get(url, headers=headers) # 請求訪問網(wǎng)站html = response.text # 獲取網(wǎng)頁源碼return html # 返回網(wǎng)頁源碼soup = BeautifulSoup(get_html('http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input'), 'lxml') # 初始化BeautifulSoup庫,并設置解析器 get_html('http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input') text = soup.select('#search_nature_rg > ul.bigimg > li > a ')#只定為到末級,中間不算。 content3 = soup.select('#search_nature_rg > ul > li > div.lable_label > span.new_lable ')#定義自營門店 print(content3)

抓取的結(jié)果:(方法是對的了,抓取a、p的值都能出現(xiàn)了。span標簽有點特殊,我想不通我換了正則表達式方法進行計算一下。)

方法二:

正則表達式抓取某網(wǎng)span標簽內(nèi)容的代碼。難度很大,但是搜索相當方便。

import json import requests from requests.exceptions import RequestException #引入異常 import re import time def get_one_page(url):try:response = requests.get(url)if response.status_code == 200: #由狀態(tài)碼判斷返回結(jié)果return response.text #返回網(wǎng)頁內(nèi)容return Noneexcept RequestException:return Nonedef parse_one_page(html):pattern = re.compile('.*?lable1.*?>(\D\D+)', re.S) #compile函數(shù)表示一個方法對象,re.s匹配items = re.findall(pattern, html) #以列表形式返回全部能匹配的字符串。print(items)def main(url):html = get_one_page(url)parse_one_page(html)if __name__ == '__main__':url = 'http://search.dangdang.com/?key=%D6%D8%B7%B5%C0%C7%C8%BA%B1%B3%BA%F3%B5%C4%B9%CA%CA%C2&act=input'main(url)

運行結(jié)果:(帶有span標簽的內(nèi)容也是抓出來是空白項,兩個方法都試過了,肯定span標簽做了限制,或者有其他原因。)

?第三個方法:

(request方法)參考我的博客另一個鏈接的地址進行抓取了。這里不演示了。

用Python2.7.5抓取某某網(wǎng)的圖片_業(yè)里村牛歡喜的博客-CSDN博客

總結(jié)思路

????????使用request、bs、正則表達式方法都就可以抓取到網(wǎng)站的數(shù)據(jù),reguest和bs的方法比較簡單,正則表達式比較困難了,抓取的方法和抓取的速度不一致。選擇最適合自己的方法進行爬蟲抓取了,各個方法都會自己優(yōu)越性。

?參考文獻:Python網(wǎng)絡爬蟲入門篇 - z寒江雪 - 博客園

還有不計其數(shù)的網(wǎng)友提供的幫助。

總結(jié)

以上是生活随笔為你收集整理的Python爬虫方法三部曲的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。