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)