1. 程式人生 > >使用BeautifulSoup提取網頁資訊並自動儲存

使用BeautifulSoup提取網頁資訊並自動儲存

關於BeautifulSoup類的例項方法和屬性的說明,不再贅述,還是拿示例分析,看一看使用BeautifulSoup是如何提取網站資訊並自動儲存的。

下面的例子是用提供的網站域名作為資料夾名稱,把提取到的影象檔案儲存到資料夾中。

from bs4 import BeautifulSoup
import requests
import os
from urllib.request import urlopen
from urllib.parse import urlparse

'''
if len(sys.argv) < 2:
    print("用法:python bs4FileTest.py 網址")
    exit(1)
'''
url = 'http://www.abvedu.com/appcpzs'
domain = "{}://{}".format(urlparse(url).scheme, urlparse(url).hostname)#http://www.abvedu.com
src = requests.get(url)
print(type(src))
src.encoding = 'bgk'
#獲得以標記為元素的文字列表
html  = src.text
#對超文字標記語言進行解析,生成一個BeautifulSoup例項bs
bs = BeautifulSoup(html,'html.parser')
#搜尋的目標是<img>標籤,把搜尋到的符合條件的標籤存放到列表all_imgs中
all_imgs = bs.find_all(['a','img'])
#all_imgs = bs.find_all(['img'])
#迭代列表
for link in all_imgs:
    #提取屬性值,即從<img..../>標籤中提取屬性
    src = link.get('src')
    print("-----",src,"------------")
    href = link.get('href')
    print("**********",href,"**********")
    #建立一個列表
    targets = [src, href]
    for t in targets:
        if t != None and ('.jpg' in t or '.png' in t or 'gif' in t):
            if t.startswith('http'): full_path = t
            else:                     full_path = domain+t
            print(full_path)
            image_dir = url.split('/')[-1]
            #檢查要存取的資料夾是否存在,如果不存在就建立一個新的
            if not os.path.exists(image_dir): os.mkdir(image_dir)
            filename = full_path.split('/')[-1]
            ext = filename.split('.')[-1]
            filename = filename.split('.')[-2]
            if  'jpg' in ext: filename = filename + '.jpg'
            else:              filename = filename + '.png'
            image = urlopen(full_path)
            fp = open(os.path.join(image_dir,filename),'wb')
            fp.write(image.read())
            fp.close()


相關推薦

使用BeautifulSoup提取網頁資訊自動儲存

關於BeautifulSoup類的例項方法和屬性的說明,不再贅述,還是拿示例分析,看一看使用BeautifulSoup是如何提取網站資訊並自動儲存的。 下面的例子是用提供的網站域名作為資料夾名稱,把提取到的影象檔案儲存到資料夾中。 from bs4 import Beaut

BeautifulSoup解析網頁資訊

在前面的例子用,我用了BeautifulSoup來從58同城抓取了手機維修的店鋪資訊,這個庫使用起來的確是很方便的。本文是BeautifulSoup 的一個詳細的介紹,算是入門把。文件地址:http://www.crummy.com/software/BeautifulS

(PHP)用cURL抓取網頁資訊替換部分內容

<?php /** * 用cURL抓取網頁資訊並替換部分內容 * User: Ollydebug * Date: 2015/11/11 * Time: 19:13 */ $curlo

前程無憂爬蟲實戰(通過輸入關鍵字爬取任意職位自動儲存為.csv文字)

![0e644a1fa9dc00c3e7c752bdf4382aa2.jpg](https://upload-images.jianshu.io/upload_images/9136378-72ab92577ff68f7d.jpg?imageMogr2/auto-orient/strip%7Ci

拉勾爬蟲實戰(通過輸入關鍵字爬取任意職位自動儲存為.csv文字)

  ![178bc26d6a28e9f177010e9150d849f2.jpg](https://upload-images.jianshu.io/upload_images/9136378-068a8b1de5a0204f.jpg?imageMogr2/auto-orient/

iOS 中使用JS提取網頁資料,自動提交表單等

1.首先用一個webview載入網頁     webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];     webView.delegate

用正則表示式從攜程頁面原始碼提取酒店資訊插入mysql資料庫

file_regEx_mysql_io desc: 從txt檔案中讀取字串,通過正則表示式提取關鍵字,並插入mysql資料庫的一個小demo. 前言 ​ 因為最近公司需要用到攜程上面的一些酒店資料,由於沒有接觸過爬蟲,所以只能投機取巧去爬html原始檔的程式碼,然後

pyhton爬蟲(9)——使用XPath提取網頁資訊

1. XPath基礎 1.1 什麼是XPath? XPath 是一門在 XML 文件中查詢資訊(節點)的語言。XPath 可用來在 XML 文件中對元素和屬性進行遍歷。 1.2 節點 節點是XPath提取XML文件資訊的最小單位,一共有7種: (1)元

HtmlUnit、httpclient、jsoup爬取網頁資訊解析

1.爬取頁面效果圖 點選"百度一下"按鈕前頁面 點選"百度一下"按鈕後頁面 天涯社群登入頁面 登入進去之後個人主頁 二、具體實現程式碼 HtmlUnit(底層也

爬蟲(進階),爬取網頁資訊寫入json檔案

import requests # python HTTP客戶端庫,編寫爬蟲和測試伺服器響應資料會用到的類庫 import re import json from bs4 import BeautifulSoup import copy print('正在爬取網頁連結……'

★ Python爬蟲 - 爬取網頁文字資訊儲存(美文的爬取與儲存

 本篇文章所包含的主要內容:  使用requests模組實現對網頁以字串的形式儲存 使用open()、write()、close()函式實現檔案的開啟與寫入 使用if() 條件語句對所需要的文字資訊進行過濾以形成一個專用提取函式 &n

Python爬蟲 BeautifulSoup抓取網頁資料 儲存到資料庫MySQL

最近剛學習Python,做了個簡單的爬蟲,作為一個簡單的demo希望幫助和我一樣的初學者 程式碼使用python2.7做的爬蟲  抓取51job上面的職位名,公司名,薪資,釋出時間等等 直接上程式碼,程式碼中註釋還算比較清楚 ,沒有安裝mysql需要遮蔽掉相關程式碼:#!/u

通過request獲取網頁資訊 通過BeautifulSoup剖析網頁元素

獲取網頁 alink his odi res req 特定 bsp css屬性 import requests newsUrl =‘http://news.sina.com.cn/china/‘ res = requests.get(newsUrl) res.encod

Mac 下安裝python3.7 + pip 利用 chrome + chromedriver + selenium 自動打開網頁自動點擊訪問指定頁面

pytho org 選擇 指定 fin usr www. 簡單 info 1、安裝python3.7https://www.python.org/downloads/release/python-370/選擇了這個版本,直接默認下一步 2、安裝pipcurl https:

BeautifulSoup 庫 & 資訊標記與提取方法

from bs4 import BeautifulSoup import requests soup = BeautifulSoup('<p>data</p>', 'html.parser') ''' ===BeautifulSoup類的基本元素 <

php自動匹配圖片網址,自動下載儲存本地化或遠端上傳到其它伺服器

在phpwind中.如果直接發表圖片網址.會自動轉為 以下的標籤形式[img]/attachment/img_85186769.jpg[/img] 所以.可以通過php正則匹配[img]中的網址,並把圖片網址對應的圖片,自動儲存到本地,然後通過php的ftp_put()函式,遠端ftp上

將HTML頁面自動儲存為PDF檔案上傳的兩種方式(一)-前端(react)方式

一、業務場景   公司的樣本檢測報告以React頁面的形式生成,已調整為A4大小的樣式並已實現分頁,業務上需要將這個網頁生成PDF檔案,並上傳到伺服器,後續會將這個檔案傳送給客戶(這裡不考慮)。 二、原來的實現形式   瀏覽器原生方法:window.print()可以將網頁儲存為PDF檔案,由於檢測報告

PHP後臺自動獲取視訊資訊截圖功能例項

名稱:php自動獲取視訊資訊並截圖 描述:PHP後臺自動獲取視訊資訊並截圖功能例項,包含ffmpeg的安裝步驟。 版本:所有版本 步驟1:確保 shell_exec() 函式是否可用!,php.ini中修改下方禁用函式。 disable_functions = pa

列印資訊輸出到lcd、自動登入串列埠 ,自動執行程式

一、列印資訊輸出到lcd   1、傳統方法 在/etc/inittab檔案里加入下面一行 tty1::respawn:/sbin/getty 38400 tty1   2、systemd方法 a、進入lib/systemd/system b、拷貝[email protect

用python爬取拉勾網招聘資訊以CSV檔案儲存

爬取拉勾網招聘資訊 1、在網頁原始碼中搜索資訊,並沒有搜到,判斷網頁資訊使用Ajax來實現的 2、檢視網頁中所需的資料資訊,返回的是JSON資料; 3、條件為北京+資料分析師的公司一共40087家,而實際拉勾網展示的資料只有 15條/頁 * 30頁 = 450條,所以需要判斷