python问题:TypeError: expected string or buffer
 import requests
import re
#这是用requests进行的数据爬取
url = 'https://car.autohome.com.cn/photo/series/26709/1/3793691.html'
html = requests.get(url)
# print (html.text)

img_url = re.findall(r'<img id="img" src="(.*?)"',html)[0]
img_url = 'http:' + img_url
print(img_url)
img_response = requests.get(img_url)
img_data = img_response.content
f = open('2.jpg','wb')
f.write(img_data)
f.close()
报错:
Traceback (most recent call last):
  File "D:/Java/Python/src/hao/__init__.py", line 9, in <module>
    img_url = re.findall(r'<img id="img" src="(.*?)"',html)[0]
  File "C:\Python27\lib\re.py", line 181, in findall
    return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer

2个回答

注意html的类型,是response,需要取它的text


img_url = re.findall(r'<img id="img" src="(.*?)"', html.text)[0]

把代码改下img_url = re.findall(r'<img id="img" src="(.*?)"',html.text)[0]

html的类型是一个对象,你要取对象的值必须.text出来的是文本内容,.content的是二进制

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐