斗圖拷肌?你可想清楚了到旦,我可是有海量表情的人。先放一組表情包鎮(zhèn)樓:
斗圖越來(lái)越火巨缘, 儼然已經(jīng)成為了一種文化添忘。是表情包,令尬聊現(xiàn)場(chǎng)起死回生若锁;也是表情包搁骑,令我們咸魚日常的喪文化和喪表演有了靈魂。如果你手機(jī)里不存上幾個(gè)G的表情包又固,加完好友根本不好意思跟人打招呼仲器。
可是上哪找去?別怕仰冠,網(wǎng)上那么多斗圖網(wǎng)站乏冀,上爬蟲去抓點(diǎn)就有了。這才運(yùn)行了10多分鐘洋只,爬了幾千張了辆沦。
爬蟲的實(shí)現(xiàn)也不復(fù)雜,以www.doutula.com為例:
1识虚、循環(huán)下一頁(yè)打開(kāi)網(wǎng)站
def get_page(url):
resp = requests.get(url,headers=headers)
print(resp,url) #打又丁:是否訪問(wèn)成功、明細(xì)頁(yè)
html = etree.HTML(resp.text)
page_link_deils = html.xpath('//div[@class="col-sm-9"]/a/@href')
for page_link_deil in page_link_deils:
[srcs,foldname] = get_pagelinkdeil(page_link_deil)
srcs_new = []
for src in srcs:
if src.endswith('!dta'):
src_new = src.split('!dta')[0]
srcs_new.append(src_new)
else:
srcs_new.append(src)
#多線程下載圖片
ex = futures.ThreadPoolExecutor(max_workers=50)
for src in srcs_new:
ex.submit(download_img,src,foldname)
next_link = html.xpath('//li/a[@rel="next"]/@href')
return next_link
2舷礼、循環(huán)打開(kāi)每頁(yè)中的組圖詳情頁(yè)鏈接
def get_pagelinkdeil(page_link_deil):
time.sleep(random.randint(1,4))
resp = requests.get(page_link_deil,headers=headers)
html = etree.HTML(resp.text)
srcs = html.xpath('//tr/td/a/img/@src')
foldname = "E:\\doutula\\{}{}".format(html.xpath('//div[@class="pic-title"]/h1/a/text()')[0],page_link_deil.split('/')[-1])
print(resp,page_link_deil,foldname) #打泳槌埂:是否訪問(wèn)成功、明細(xì)頁(yè)妻献、文件路徑
return srcs,foldname
3蛛株、循環(huán)獲取詳情頁(yè)中的各表情圖,下載到本地對(duì)于的表情包文件夾
def download_img(src,foldname):
filename = src.split('/')[-1]
if not os.path.exists(foldname):
os.makedirs(foldname)
img = requests.get(src,headers=headers)
with open('{}\\{}'.format(foldname,filename),'wb') as file:
file.write(img.content)
實(shí)現(xiàn)的python程序育拨、下載的表情包谨履,在個(gè)人同名微信工作號(hào)“數(shù)云智連”,有需要的到微信公眾號(hào)回復(fù):斗圖表情包熬丧,獲取下載鏈接笋粟。