當前位置:首頁 » 編程語言 » python3爬取圖片

python3爬取圖片

發布時間: 2022-05-01 05:47:26

python如何爬取百度圖片

幾乎所有的網站都會有反爬機制,這就需要在爬取網頁時攜帶一些特殊參數,比如:user-agent、Cookie等等,可以在寫代碼的時候用工具將所有參數都帶上。

Ⅱ Python爬蟲爬取圖片這個報錯怎麼處理

你好!你的錯誤原因在於html頁面獲取到的img標簽src屬性中的鏈接,可能是因為src中的url格式是這樣的:

<imgsrc="//hao123.com/xxx/xxx/xxx/"></img>

這樣獲取到的鏈接都沒有帶上協議:http或者https。而導致程序拋出ValueError的錯誤異常。

因為正常的url格式應該類似這樣的:https://www..com/

即 協議://用戶名:密碼@子域名.域名.頂級域名:埠號/目錄/文件名.文件後綴?參數=值#標志

參考網頁鏈接

可將代碼中第一個for循環中download_links.append修改為:

forpic_taginsoup.find_all('img'):
pic_link=pic_tag.get('src')
download_links.append('http:'+pic_link)

linux下python怎麼寫爬蟲獲取圖片

跟linux有什麼關系,python是跨平台的,爬取圖片的代碼如下:

import urllib.requestimport osimport randomdef url_open(url):
req=urllib.request.Request(url) #為請求設置user-agent,使得程序看起來更像一個人類
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0') #代理IP,使用戶能以不同IP訪問,從而防止被伺服器發現
'''iplist=['1.193.162.123:8000','1.193.162.91:8000','1.193.163.32:8000']
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
opener=urllib.request.build_opener(proxy_support)
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER')]

urllib.request.install_opener(opener)'''

response=urllib.request.urlopen(req)
html=response.read() return htmldef get_page(url):

html=url_open(url).decode('utf-8')
a=html.find('current-comment-page')+23
b=html.find(']',a) #print(html[a:b])
return html[a:b]def find_imgs(url):
html=url_open(url).decode('utf-8')
img_addrs=[]

a=html.find('img src=') while a!=-1:
b=html.find('.jpg',a,a+140) if b!=-1: if html[a+9]!='h':
img_addrs.append('http:'+html[a+9:b+4]) else:
img_addrs.append(html[a+9:b+4]) else:
b=a+9

a=html.find('img src=',b) for each in img_addrs:
print(each+'我的列印') return img_addrsdef save_imgs(folder,img_addrs):
for each in img_addrs: #print('one was saved')
filename=each.split('/')[-1] with open(filename,'wb') as f:
img=url_open(each)
f.write(img)def download_mm(folder='ooxx',pages=10):
os.mkdir(folder)
os.chdir(folder)

url=""
page_num=int(get_page(url)) for i in range(pages):
page_num=page_num-1
page_url=url+'page-'+str(page_num)+'#comments'
img_addrs=find_imgs(page_url)
save_imgs(folder,img_addrs)if __name__=='__main__':
download_mm()

完成

運行結果

Ⅳ python爬圖片報錯 [Errno 13] Permission denied: 'D:\\python\\test2'

python爬圖片報錯 [Errno 13] Permission denied: 'D:\python\test2',是代碼輸入錯誤造成的,解決方法如下:

1、首先在網頁上抓取圖片時open函數有時會報錯,如圖。

Ⅳ Python爬蟲可以爬取什麼

Python爬蟲可以爬取的東西有很多,Python爬蟲怎麼學?簡單的分析下:

如果你仔細觀察,就不難發現,懂爬蟲、學習爬蟲的人越來越多,一方面,互聯網可以獲取的數據越來越多,另一方面,像 Python這樣的編程語言提供越來越多的優秀工具,讓爬蟲變得簡單、容易上手。

利用爬蟲我們可以獲取大量的價值數據,從而獲得感性認識中不能得到的信息,比如:

知乎:爬取優質答案,為你篩選出各話題下最優質的內容。

淘寶、京東:抓取商品、評論及銷量數據,對各種商品及用戶的消費場景進行分析。

安居客、鏈家:抓取房產買賣及租售信息,分析房價變化趨勢、做不同區域的房價分析。

拉勾網、智聯:爬取各類職位信息,分析各行業人才需求情況及薪資水平。

雪球網:抓取雪球高回報用戶的行為,對股票市場進行分析和預測。

爬蟲是入門Python最好的方式,沒有之一。Python有很多應用的方向,比如後台開發、web開發、科學計算等等,但爬蟲對於初學者而言更友好,原理簡單,幾行代碼就能實現基本的爬蟲,學習的過程更加平滑,你能體會更大的成就感。

掌握基本的爬蟲後,你再去學習Python數據分析、web開發甚至機器學習,都會更得心應手。因為這個過程中,Python基本語法、庫的使用,以及如何查找文檔你都非常熟悉了。

對於小白來說,爬蟲可能是一件非常復雜、技術門檻很高的事情。比如有人認為學爬蟲必須精通 Python,然後哼哧哼哧系統學習 Python 的每個知識點,很久之後發現仍然爬不了數據;有的人則認為先要掌握網頁的知識,遂開始 HTMLCSS,結果入了前端的坑,瘁……

但掌握正確的方法,在短時間內做到能夠爬取主流網站的數據,其實非常容易實現,但建議你從一開始就要有一個具體的目標。

在目標的驅動下,你的學習才會更加精準和高效。那些所有你認為必須的前置知識,都是可以在完成目標的過程中學到的。這里給你一條平滑的、零基礎快速入門的學習路徑。

1.學習 Python 包並實現基本的爬蟲過程

2.了解非結構化數據的存儲

3.學習scrapy,搭建工程化爬蟲

4.學習資料庫知識,應對大規模數據存儲與提取

5.掌握各種技巧,應對特殊網站的反爬措施

6.分布式爬蟲,實現大規模並發採集,提升效率

學習 Python 包並實現基本的爬蟲過程

大部分爬蟲都是按「發送請求——獲得頁面——解析頁面——抽取並儲存內容」這樣的流程來進行,這其實也是模擬了我們使用瀏覽器獲取網頁信息的過程。

Python中爬蟲相關的包很多:urllib、requests、bs4、scrapy、pyspider 等,建議從requests+Xpath 開始,requests 負責連接網站,返回網頁,Xpath 用於解析網頁,便於抽取數據。

如果你用過 BeautifulSoup,會發現 Xpath 要省事不少,一層一層檢查元素代碼的工作,全都省略了。這樣下來基本套路都差不多,一般的靜態網站根本不在話下,豆瓣、糗事網路、騰訊新聞等基本上都可以上手了。

當然如果你需要爬取非同步載入的網站,可以學習瀏覽器抓包分析真實請求或者學習Selenium來實現自動化,這樣,知乎、時光網、貓途鷹這些動態的網站也可以迎刃而解。

了解非結構化數據的存儲

爬回來的數據可以直接用文檔形式存在本地,也可以存入資料庫中。

開始數據量不大的時候,你可以直接通過 Python 的語法或 pandas 的方法將數據存為csv這樣的文件。

當然你可能發現爬回來的數據並不是干凈的,可能會有缺失、錯誤等等,你還需要對數據進行清洗,可以學習 pandas 包的基本用法來做數據的預處理,得到更干凈的數據。

學習 scrapy,搭建工程化的爬蟲

掌握前面的技術一般量級的數據和代碼基本沒有問題了,但是在遇到非常復雜的情況,可能仍然會力不從心,這個時候,強大的 scrapy 框架就非常有用了。

scrapy 是一個功能非常強大的爬蟲框架,它不僅能便捷地構建request,還有強大的 selector 能夠方便地解析 response,然而它最讓人驚喜的還是它超高的性能,讓你可以將爬蟲工程化、模塊化。

學會 scrapy,你可以自己去搭建一些爬蟲框架,你就基本具備爬蟲工程師的思維了。

學習資料庫基礎,應對大規模數據存儲

爬回來的數據量小的時候,你可以用文檔的形式來存儲,一旦數據量大了,這就有點行不通了。所以掌握一種資料庫是必須的,學習目前比較主流的 MongoDB 就OK。

MongoDB 可以方便你去存儲一些非結構化的數據,比如各種評論的文本,圖片的鏈接等等。你也可以利用PyMongo,更方便地在Python中操作MongoDB。

因為這里要用到的資料庫知識其實非常簡單,主要是數據如何入庫、如何進行提取,在需要的時候再學習就行。

掌握各種技巧,應對特殊網站的反爬措施

當然,爬蟲過程中也會經歷一些絕望啊,比如被網站封IP、比如各種奇怪的驗證碼、userAgent訪問限制、各種動態載入等等。

遇到這些反爬蟲的手段,當然還需要一些高級的技巧來應對,常規的比如訪問頻率控制、使用代理IP池、抓包、驗證碼的OCR處理等等。

往往網站在高效開發和反爬蟲之間會偏向前者,這也為爬蟲提供了空間,掌握這些應對反爬蟲的技巧,絕大部分的網站已經難不到你了.

分布式爬蟲,實現大規模並發採集

爬取基本數據已經不是問題了,你的瓶頸會集中到爬取海量數據的效率。這個時候,相信你會很自然地接觸到一個很厲害的名字:分布式爬蟲。

分布式這個東西,聽起來很恐怖,但其實就是利用多線程的原理讓多個爬蟲同時工作,需要你掌握 Scrapy + MongoDB + Redis 這三種工具。

Scrapy 前面我們說過了,用於做基本的頁面爬取,MongoDB 用於存儲爬取的數據,Redis 則用來存儲要爬取的網頁隊列,也就是任務隊列。

所以有些東西看起來很嚇人,但其實分解開來,也不過如此。當你能夠寫分布式的爬蟲的時候,那麼你可以去嘗試打造一些基本的爬蟲架構了,實現一些更加自動化的數據獲取。

你看,這一條學習路徑下來,你已然可以成為老司機了,非常的順暢。所以在一開始的時候,盡量不要系統地去啃一些東西,找一個實際的項目(開始可以從豆瓣、小豬這種簡單的入手),直接開始就好。

因為爬蟲這種技術,既不需要你系統地精通一門語言,也不需要多麼高深的資料庫技術,高效的姿勢就是從實際的項目中去學習這些零散的知識點,你能保證每次學到的都是最需要的那部分。

當然唯一麻煩的是,在具體的問題中,如何找到具體需要的那部分學習資源、如何篩選和甄別,是很多初學者面臨的一個大問題。

以上就是我的回答,希望對你有所幫助,望採納。

Ⅵ python爬取動漫圖片無法用request找到圖片鏈接

你爬取的確實是源代碼
F12看element的圖片是js模板動態生成的。
給個提示,源碼的最底部有 "var DATA =" 這個後面跟的一堆數據存的才是你需要的

Ⅶ python3 爬取圖片異常的原因

我們在下載文件時,一會會採取urlretrieve或是requests的get方式,
from urllib.request import urlretrieve
urlretrieve(self.url, filename="xxx.png")
但對於連續下載,各個文件保存是需要時間的,而程序運行永運是快於存儲的,我懷疑這是水管里流水速度與缸的大小不合適的原因,那可以試試下面這種方式:
r = requests.get(url, stream=True)
with open(local_filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.flush()

Ⅷ 如何用python3.x爬取百度圖片

網路的反爬蟲機制觸發了,它檢測到你是爬蟲所以拒絕了你的請求。
這個東西比較復雜,建議網上搜一搜反爬蟲機制,然後一個一個試解決辦法。
最簡單的就是通過代理伺服器來爬。
最後建議你可以試一試requests庫,我在爬取微博圖床的時候只用requests庫就完美解決了反爬蟲,再沒報過錯。

Ⅸ 想用python爬取網頁上的圖片,但無法用select()方法定點陣圖片的源地址

是的可以撒入爬去獲得。

Ⅹ 如何用Python爬取數據

方法/步驟

  • 在做爬取數據之前,你需要下載安裝兩個東西,一個是urllib,另外一個是python-docx。

  • 7

    這個爬下來的是源代碼,如果還需要篩選的話需要自己去添加各種正則表達式。

熱點內容
手機ea伺服器連不上怎麼辦 發布:2025-05-15 01:35:03 瀏覽:450
資料庫數據插入語句 發布:2025-05-15 01:30:01 瀏覽:871
js是無需編譯直接運行嗎 發布:2025-05-15 01:28:30 瀏覽:476
android文件夾重命名 發布:2025-05-15 01:13:50 瀏覽:481
cns腳本 發布:2025-05-15 01:13:38 瀏覽:722
數據結構與演算法筆試題 發布:2025-05-15 01:04:20 瀏覽:417
搜狗輸入法如何直接編輯配置文件 發布:2025-05-15 00:51:47 瀏覽:668
電箱都有哪些配置 發布:2025-05-15 00:30:21 瀏覽:74
安卓qq邀請碼在哪裡尋找 發布:2025-05-15 00:02:04 瀏覽:35
三菱fx編程口 發布:2025-05-15 00:01:23 瀏覽:810