Perayap web - Bagaimana cara merangkak gambar dalam blog Blog Park menggunakan python?
某草草
某草草 2017-05-18 10:45:39
0
1
880

Saya menulis sekeping kod kecil untuk merangkak gambar dalam blog Taman Blog Kod ini berkesan untuk beberapa pautan, tetapi beberapa pautan melaporkan ralat sebaik sahaja ia dirangkak.

#coding=utf-8

import urllib
import re
from lxml import etree

#解析地址
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

#获取地址并建树
url = "http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.html"
html = getHtml(url)
html = html.decode("utf-8")
tree = etree.HTML(html)

#保存图片至本地
reg = r'src="(.*?)" alt'
imgre = re.compile(reg)
imglist = re.findall(imgre, html)
x = 0
for imgurl in imglist:
    urllib.urlretrieve(imgurl, '%s.jpg' % x)
    x += 1

Seperti yang ditunjukkan dalam gambar, imej boleh dirangkak dengan betul

Jika anda menukar url kepada

url = "http://www.cnblogs.com/baronzhang/p/6861258.html"

Kemudian ralat akan dilaporkan serta-merta

Sila selesaikan, terima kasih!

某草草
某草草

membalas semua(1)
我想大声告诉你

Mesej ralat sudah sangat jelas Jika anda melihat pada kod sumber halaman web, imej pertama yang dipadankan adalah dalam format GIF, dan ia masih laluan relatif, jadi anda tidak boleh memuat turunnya, jadi ia menggesa IOerror, walaupun. jika anda telah memuat turunnya, kerana anda menetapkan format sebagai JPG, anda tidak boleh membukanya. Jadi anda hanya perlu menilai dan menapis

for imgurl in imglist:
    if "gif" not in imgurl:
        urllib.urlretrieve(imgurl, '%s.jpg' % x)
        x += 1

Lihat apa yang saya tambah Sudah tentu, ini hanyalah penilaian yang paling mudah, tetapi ia boleh memastikan bahawa program kedua anda tidak akan melaporkan ralat, dan ia juga memberi anda idea!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!