python3.4爬蟲demo
python 3.4 所寫爬蟲
僅僅是個(gè)demo,以百度圖片首頁圖片為例。能跑出圖片上的圖片;
使用 eclipse pydev 編寫:
from SpiderSimple.HtmLHelper import *
import imp
import sys
imp.reload(sys)
#sys.setdefaultencoding('utf-8')
html = getHtml('http://image.baidu.com/')
try:
getImage(html)
exit()
except Exception as e:
print(e)
HtmlHelper.py文件
上面的 SpiderSimple是自定義的包名
from urllib.request import urlopen,urlretrieve
#正則庫
import re
#打開網(wǎng)頁
def getHtml(url):
page = urlopen(url)
html = page.read()
return html
#用正則爬里面的圖片地址
def getImage(Html):
try:
#reg = r'src="(.+?\.jpg)" class'
#image = re.compile(reg)
image = re.compile(r'<img[^>]*src[=\"\']+([^\"\']*)[\"\'][^>]*>', re.I)
Html = Html.decode('utf-8')
imaglist = re.findall(image,Html)
x =0
for imagurl in imaglist:
#將圖片一個(gè)個(gè)下載到項(xiàng)目所在文件夾
urlretrieve(imagurl, '%s.jpg' % x)
x+=1
except Exception as e:
print(e)
要注意個(gè)大問題,python 默認(rèn)編碼的問題。
有可能報(bào)UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),錯(cuò)誤。這個(gè)要設(shè)置python的默認(rèn)編碼為utf-8.
設(shè)置最好的方式是寫bat文件,
echo off set PYTHONIOENCODING=utf8 python -u %1
然后重啟電腦。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
python如何利用paramiko執(zhí)行服務(wù)器命令
這篇文章主要介紹了python如何利用paramiko執(zhí)行服務(wù)器命令,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11
Pytorch實(shí)現(xiàn)常用乘法算子TensorRT的示例代碼
pytorch 用于訓(xùn)練,TensorRT用于推理是很多AI應(yīng)用開發(fā)的標(biāo)配。大家往往更加熟悉 pytorch 的算子,而不太熟悉TensorRT的算子。本文介紹了Pytorch中常用乘法的TensorRT實(shí)現(xiàn),感興趣的可以了解一下2022-06-06
Python利用Selenium實(shí)現(xiàn)簡單的中英互譯功能
Selenium 是一個(gè)用于 Web 應(yīng)用程序測(cè)試的工具,最初是為網(wǎng)站自動(dòng)化測(cè)試而開發(fā)的,可以直接運(yùn)行在瀏覽器上,是 Python 的一個(gè)第三方庫,對(duì)外提供的接口能夠操作瀏覽器,從而讓瀏覽器完成自動(dòng)化的操作,本文介紹了如何利用Python中的Selenium實(shí)現(xiàn)簡單的中英互譯2024-08-08
PyCharm無法識(shí)別PyQt5的2種解決方法,ModuleNotFoundError: No module named
這篇文章主要介紹了PyCharm無法識(shí)別PyQt5的兩種解決辦法,ModuleNotFoundError: No module named 'pyqt5',需要的朋友可以參考下2020-02-02
Python中Collections模塊的Counter容器類使用教程
Counter是Python標(biāo)準(zhǔn)庫提供的一個(gè)非常有用的容器,可以用來對(duì)序列中出現(xiàn)的各個(gè)元素進(jìn)行計(jì)數(shù),下面就來一起看一下Python中Collections模塊的Counter容器類使用教程2016-05-05

