『壹』 python爬圖片報錯 [Errno 13] Permission denied: 'D:\\python\\test2'
python爬圖片報錯 [Errno 13] Permission denied: 'D:\python\test2',是代碼輸入錯誤造成的,解決方法如下:
1、首先在網頁上抓取圖片時open函數有時會報錯,如圖。
『貳』 python爬蟲圖片 在目錄中存在圖片1 跳過該圖片1,繼續寫入圖片2的代碼
給你一個代碼借鑒下:
#!/usr/bin/python3
#-*-coding:utf-8-*-
importrequests
importre
importos
Header={"User-Agent":"Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/38.0.2125.104Safari/537.36"}
defpicture_get(picture_url):
try:
root="E:/pic/"
path=root+url.split('/')[-1]
ifnotos.path.exists(root):#目錄不存在創建目錄
os.mkdir(root)
ifnotos.path.exists(path):#文件不存在則下載
r=requests.get(picture_url,headers=Header)
f=open(path,"wb")
f.write(r.content)
f.close()
print("文件下載成功")
else:
print("文件已經存在")
except:
print("獲取失敗")
『叄』 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)
『肆』 Python如何爬取百度圖片
幾乎所有的網站都會有反爬機制,這就需要在爬取網頁時攜帶一些特殊參數,比如:user-agent、Cookie等等,可以在寫代碼的時候用工具將所有參數都帶上。
『伍』 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爬取圖片時候url地址是下載圖片時報錯了
你的參數可能不對,你可以加個teace來看看,在報錯的第二十二行前,看一下參數是什麼,type看一下類型再說。
希望懂的回答能幫到你
是
『柒』 用Python爬蟲爬取的圖片怎麼知道圖片有沒有水印
看啊 眼睛是能判斷的
『捌』 python如何利用requests和bs4爬取圖片
目標網站網址呢?網址發出來我看一下
每個網站的HTML結構不一樣,解析代碼就不一樣,要針對不同的網站編寫不同的代碼
編寫爬蟲代碼前還要評估目標網站是否需要登錄,數據是否有加密等諸多問題
『玖』 python為啥有時候用.content爬取的圖片是0 kb
這種情況一般都是你雖然找到了下載地址,卻無法下載圖片。最常見的兩個可能:你和伺服器之間的通信效果不好,另一種就是人家基於內容進行了保護,也就是反扒
『拾』 使用python爬取網頁,獲取不到圖片地址
這個大圖片是在點擊之後用 JS 控制載入的。
你可以看看 js/js.js 這個文件,253 行:
functionchangeImg(){
jQuery("#bitImg").attr('src','p/p'+pictID+'/'+indexNum+'.'+jpgPng);
}
其實大圖的規律很好找, 下面縮略圖列表的 src 可以用 #variContent > li > img 取到,可以在源碼中的 107 行找到:
view-source:http://pictogram2.com/?p=2315
縮略圖列表地址長這樣:
/p/p0997/tn/1.jpg
/p/p0997/tn/2.jpg
/p/p0997/tn/3.jpg
...
如果要獲取大圖,只要去掉「tn」這一段就可以:
/p/p0997/1.jpg
/p/p0997/2.jpg
/p/p0997/3.jpg
...
然後拼接域名在前面,GET 下來就是大圖,比如第一個大圖鏈接:
第一個大圖地址
不過,你如果僅僅只是想要抓那個站的全部素材,窮舉「p0997」這一段的序號(比如改成「p0098」,這個應該是圖集的 ID),並且遍歷最後一段的圖片序號,擴展名可能是 jpg 也可能是 png,從 1 開始(「1.jpg」,「2.jpg」...)直到返回 404 停止。
思路大概是這么個思路,不過話說回來,你這么爬人家素材真的道德嗎?