想着今晚就从简单开始吧,万万没想到,还是问题百出。真是伤筋。
import requests
from lxml import etree
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'}
def getImg(url):
html = requests.get(url,headers=headers)
response = etree.HTML(html.text)
#imglink = response.xpath('//*[@id="post_content_81126411541"]/div[2]/div/img[1]/@src')
imglinks = response.xpath('//img[@class="BDE_Image"]/@src')
for eachimglink in imglinks:
E = str(eachimglink)
with open('./img/%s.jpg'%E[-20:-4],'wb') as f:
f.write(eachimglink)
if __name__ == '__main__':
url = 'http://tieba.baidu.com/p/4229456347?pn=2'
getImg(url)
运行结果:TypeError: a bytes-like object is required, not 'lxml.etree._ElementUnicodeResult'
类型错误。
TypeError: a bytes-like object is required, not 'lxml.etree._ElementUnicodeResult'
以作记录吧。大概也估摸着是传入的参数错误,但是就是不知道错在哪里。
Traceback (most recent call last):
File "E:\py\pyqt5\tieba.py", line 17, in
getImg(url)
File "E:\py\pyqt5\tieba.py", line 13, in getImg
f.write(eachimglink)
TypeError: a bytes-like object is required, not 'lxml.etree._ElementUnicodeResult'
[Finished in 1.0s with exit code 1]
[shell_cmd: python -u "E:\py\pyqt5\tieba.py"]
[dir: E:\py\pyqt5]
[path: C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64_win\compiler;C:\Program Files (x86)\Common Files\Intel\Shared Files\cpp\bin\Intel64;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\Administrator\AppData\Local\Programs\Python\Python36\;E:\py\phantomjs-2.1.1-windows\phantomjs-2.1.1-windows\bin\]
领取专属 10元无门槛券
私享最新 技术干货