樊鴻燁 2021-06-23 17:58 采纳率: 100%
浏览 39
已采纳

python爬虫代码出现报错

代码如下:

import urllib.request
url='https://tj.lianjia.com/ditiezufang/li110458004/'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'}
request = urllib.request.Request(url,headers=headers)
response = urllib.request.urlopen(request)
if response.status==200:   #判断是否正常响应
    html=response.read().decode('utf-8')
## 编写正则表达式
import re
reg='data-src="(.*o_auto)|(.*\.jpg)"\n'#源代码格式图片
imgre=re.compile(reg)
imglist = imgre.findall(html)
## 保存到本地数据库 
import os
os.chdir('C:\\Users\\90541\\Desktop\\数据分析\\pycode\\picture')# 工作路径指向这个目录
x=1
for img in imglist:
    img=img.replace('250x182','780x439')    这一步报错了
    urllib.request.urlretrieve(img,'%s.jpg' % x)#直接将远程数据下载到本地
    x+=1

  • 写回答

3条回答 默认 最新

  • 关注

    reg='data-src="(.*o_auto)|(.*\.jpg)"\n'#源代码格式图片

    你正则中有两个(),每次会获取两个子匹配结果,imglist的每个元素都是包含两个子匹配结果的元组。

    应该改成

    reg='data-src="(.*o_auto|.*\.jpg)"\n'#源代码格式图片

    或者

    reg='data-src="((?:.*o_auto)|(?:.*\.jpg))"\n'#源代码格式图片

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?