python爬虫win10程序_请教各位:python爬虫编码问题,版本3.6,win10 64位下?

首先在你这个代码里面 local=r'D:\%s\%s.jpg' % (filename,imgurl.splite("/")[-1])中split写成了splite.

还有 urllib.request.urlretrieve(imgurl,local)这个imgurl不是一个合法的

url,只是一个相对 url, 要改成绝对 url,需要加上 base_url = 'http://www.shop2255.com/'

还有生成的文件路径好像也有问题.# -*- coding: utf-8 -*-

import urllib.request

from urllib.request import urlopen, urlretrieve

import urllib

import urllib.parse

import re

import os

from bs4 import BeautifulSoup

base_url = 'http://www.shop2255.com/'

url_all =[

'http://www.shop2255.com/showpro/2603.html',

'http://www.shop2255.com/showpro/1558.html',

'http://www.shop2255.com/showpro/1564.html',

'http://www.shop2255.com/showpro/2411.html',

'http://www.shop2255.com/showpro/2409.html',

'http://www.shop2255.com/showpro/1561.html',

'http://www.shop2255.com/showpro/2414.html',

'http://www.shop2255.com/showpro/2609.html',

'http://www.shop2255.com/showpro/2413.html',

'http://www.shop2255.com/showpro/2604.html',

'http://www.shop2255.com/showpro/2605.html',

'http://www.shop2255.com/showpro/2606.html',

'http://www.shop2255.com/showpro/2608.html',

'http://www.shop2255.com/showpro/2607.html',

'http://www.shop2255.com/showpro/2610.html']

def getHtml(url):

response = urlopen(url)

# print(response.read())

html = response.read().decode("gbk")

print(html)

return html

def getImg(html):

reg = 'src="(.+?\.jpg)"'

imgre = re.compile(reg)

imglist = re.findall(imgre, html)

return imglist

for i in range(len(url_all)):

html = getHtml(url_all[i])

# 注意: 我这里没有你那个错误,我只需要改这个就行了

# list = getImg(html.decode())

list = getImg(html)

# print(list)

x = 0

for imgurl in list:

print(x)

file_path = url_all[i]

(filepath, tempfilename) = os.path.split(file_path)

(filename, extension) = os.path.splitext(tempfilename)

if not os.path.exists('d:\%s' % filename):

os.mkdir('d:\%s' % filename)

# os.mkdir('D:\%s' % filename2)

local = r'D:\%s\%s.jpg' % (filename, imgurl.split("/")[-1])

try:

urllib.request.urlretrieve(base_url + imgurl, local)

except:

print("can't retrieve the" + base_url + imgurl)

x += 1

print("done")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值