バッチのpython画像をクロールし、ローカルフォルダに保存します
私は将軍、他に何もない、あなたは友人のアカデミーの公式ウェブサイト上で開始し、自宅でのパーティーと国家の呼び出しに積極的に対応、現在、今日のジュニアソフトウェア山西農業大学の大学、深刻な流行に伴う学生、午前オンラインプレゼンテーション研究所卒業はそれを逃すために、ゆっくりと自分自身のために確保した後、教師のダウンをクロールするすべての写真は、アウト開くために、入力された、あまり話をしませんでした!
- インポートされたパッケージ
私たちは、4つのパッケージの総使用する必要があります
(彼らは私がDaodaメイ自分自身に登るを推測壊す場合)クローリングウェブの崩壊を防ぐために、間隔を設定するために使用される時間のパッケージを、
requessパッケージ、もちろん、ページのソースコードを取得するために使用され、対応する物質の処理
私が書いた後にクロールWebコンテンツの正確な、特定の用途に使用BeautifulSoupパッケージを、
OSのパッケージ、ファイル名を作成するために使用される最も重要かつ一般的に使用される文書処理パッケージなど
import time
import requests
from bs4 import BeautifulSoup
import os
2. ソースコードのクロールページ
漢よく理解フォールトトレランスメカニズムを追加し、1が理解できる、直接コードで、は言うまでもないです
#封装方法用来爬取网页的源代码
def getHTML(url):
try:
r = requests.get(url,timeout = 30,headers = hd)
r.raise_for_status() #容错机制,若请求访问失败则返回的不是200,则返回字符串空
r.encoding = r.apparent_encoding #设置编码方式,用解析返回网页源码得出的编码方式代替 UTF-8
return r.text
except:
return ''
これは注意すべきである爬虫類の公式サイトには制限が習慣で、存在しないが、要求のヘッドによって要求された変更で、または私の頭は、より良い、それを変更します
hd = {'user-agent':'chorme/10'}
#更改requests请求的头信息,用来防止网页的反爬虫,也可来伪装自己访问网页的信息,这里用最简单的chorm(浏览器)版本10代替
3. 彼らは画像リンクを取得したいWebページ、パース
ソースを表示ページ、ラベルが配置されているクロールの絵を見て、マップ上の話
直接クロール画像は、imgタグの間で次のプットので、すべてのimgタグをクロールしている、と分析ができますが、それを観察し、彼らが望む関連情報を参照することができ、私がお願いするのか分かりません、各画像は異なるも、imgタグは、正規表現を使用することはできませんであり、最も刺激性はいくつかの写真は、直接施設であるということです適切なダウンロードリンクを提供しますが、一部はしないでください、私たちは唯一のステッチねえ、あなただけのコードに、基本的な方法を自分自身を使用することができます!
url = 'http://soft.sxau.edu.cn/info/1013/2388.htm' #爬取网页的url
picture = 'http://211.82.8.2:8080/system/_owners/soft/_webprj/' #设置下载图片的头部,根据网页源码得出,并不是每一个img标签都有相对应的图片下载链接,但都有相应的src,这里为最后的保存图片做准备
text = getHTML(url)
soup = BeautifulSoup(text,'html.parser')
a = soup.find_all('img') #直接找出所有的img标签,观察发现每个图片的img标签并不一样,不能用正则表达式来统一查找
urlInfo = [] #用来保存每一个图片拼接好的下载链接
for tag in a:
new_url = tag.attrs['src'] #得到img属性当中的src
urlInfo.append(picture+new_url.split('/',2)[-1]) #通过spilt函数剪切src并于之前的图片头部进行拼接,得到每个图片的下载地址
コードは、本当に私は悲しい初心者を反映し、労力の無駄製のダウンロードリンクをステッチ各ラインヨーヨーの詳細なメモを、持っていた後。。。
4. ダウンロードした写真を保存
あなたが話す前に、コードの最初の!
#保存图片,思路:将所有的图片保存在本地的一个文件夹下,用图片的url链接的后缀名来命名
dir_name = 'teacherImage' #设置文件夹的名字
if not os.path.exists(dir_name): #os模块判断并创建
os.mkdir(dir_name)
for img_url in urlInfo:
time.sleep(1) #设置间隔时间,防止把网页爬崩
picture_name = img_url.split('/')[-1] #提取图片url后缀
reponse = requests.get(img_url)
with open(dir_name+'/'+picture_name,'wb') as f:
f.write(reponse.content)
主な用途osモジュール、シンプルかつ効率的な、一般的に推奨される、ハッハッハハッハッハハッハッハ
結果
武道のセットをダウン遊ぶ、次のような結果になります、もちろん、それが成功しました!
これらの写真は、将来のミスの大学、それに満ちています!