ケースI:Webサイトの画像をクロール

www.dbmeinv.comこのサイトの画像:写真は、コンテンツをクロールする必要があります。

画像コンテンツをクロール

要求がインポート
lxmlのインポートetreeから
インポートOSの
#1は、最初のページのURLを取得 URL =「https://www.dbmeinv.com/?pager_offset=1」
#は、最初の取得の理由は、メカニズムをポケット対処することです。私たちは、ユーザエージェントによってポケットに入れ、70%〜80%を解決することができます。 = {ヘッダー'User--エージェント':の"Mozilla / 5.0(のWindows NT 6.1、Win64の、x64-)のAppleWebKit / 537.36(ヤモリ様KHTML)クローム/ 70.0.3538.110サファリ/ 537.36"} #2は、要求受付応答を送信する。 レスポンスrequests.get =(URL、ヘッダ=ヘッダ) #3.抽出されたデータ #のXPathの解析対象生成 セレクタ= etree.HTML(response.text) をすべての画像の最初のページのURLリストを取得 /」(url_list = selector.xpathを/ DIV / A / IMG / @ SRC「) 映像コンテンツを取得、要求を再送信
#はパス変数が写真の場所の格納するために使用される定義 =パス」newpathが「 すべての画像のURLのリストの最初のページを横断# url_listでURLのために: そうでない場合はos.path.exists(パス): os.makdirs(パス) 応答受信要求を送信#、 データ= requests.get(URL、ヘッダー=ヘッダ) #書き込みバイナリを使用し、データを保存する オープン(パス+ "/"と ":[-7] + URL F AS WB「): f.write(data.content)

  説明:リクエストパラメータを追加し、ポケット加工を解きます。たとえば、問題のUser-Agentをポケットの70%〜80%ソリューション。

第二に、ウェブサイトの写真のすべてのページをクロール

import requests
from lxml import etree
import  os
#1.url
url_list=["https://www.dbmeinv.com/?pager_offset={}".format(i) for i in range(1,10)]
headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"}
#2.发送请求,接受响应
for url in url_list:
	response=requests.get(url,headers=headers)

#3.提取数据
#生成一个xpath解析对
	selector=etree.HTML(response.text)

#获取图片的URL列表
	url_list2=selector.xpath("//div/a/img/@src")
#再次发送请求,获取图片内容
	path="newpath"

	for url in url_list2:
		if not os.path.exists(path):
			os.makedirs(path)
		#发送请求,接受响应
			data = requests.get(url, headers = headers)
		#保存数据,写入要用二进制
		with open(path + "/"+url[-7:],"wb")as f:
			f.write(data.content)

  

 

おすすめ

転載: www.cnblogs.com/benpao1314/p/11226987.html