python 最簡單的爬蟲
阿新 • • 發佈:2018-12-12
一個簡單的爬蟲工程
環境:
OS:Window10
python:3.7
安裝一些庫檔案
pip install requests
pip install beautifulsoup4
pip install lxml
在安裝的時候如果遇到了你的pip版本過低的錯誤的話,可以找到你本地的C:\Users\XXX\PycharmProjects\getHtml\venv\Lib\site-packages下面的pip-18.1.dist-info資料夾刪除,之後在進行更新
下面是提取一個網頁的圖片程式碼
import time import requests import os import threading from bs4 import BeautifulSoup class BeautifulPicture(): def __init__(self): self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'} self.web_url = "https://unsplash.com/" self.folder_path = r'C:\Users\peiqiang\Desktop\python Pic' def request(self, url): r = requests.get(url) return r def mkdir(self, path): path = path.strip() isExists = os.path.exists(path) if not isExists: print("建立名字叫做", path, "的資料夾") os.makedirs(path) print("建立成功!") else: print(path, '資料夾已經存在了,不再建立') def save_img(self, url, name): print('開始儲存圖片...') img = self.request(url) file_name = self.folder_path + '\{}.jpg'.format(name) print('開始儲存檔案') f = open(file_name, 'ab') f.write(img.content) f.close() thread_lock.release() print(file_name, '檔案儲存成功!') def get_pic(self): print('開始網頁get請求') r = self.request(self.web_url) print('開始獲取所有img標籤') all_a = BeautifulSoup(r.text, 'lxml').find_all('img') print('開始建立資料夾') self.mkdir(self.folder_path) print('開始切換資料夾') os.chdir(self.folder_path) i=0 for a in all_a: i += 1 print("開始下載第{}張圖片".format(i)) thread_lock.acquire() print("抓取圖片的URL:", a["src"]) self.save_img(a["src"], i) thread_lock = threading.BoundedSemaphore(value=10) beauty = BeautifulPicture() beauty.get_pic()
效果如下
本地的存放的路徑下