ln19970505 发表于 2020-3-19 23:57

python爬取头像问题

本帖最后由 ln19970505 于 2020-3-20 08:11 编辑

我想用这、个代码爬一下网页上的头像,、这个get_img函数单独用是好用的,放到循环里就报错了,OSError: Invalid argument: '\n王志敏\n.png'请问这个错误该怎么解决?

import requests
from bs4 import BeautifulSoup

url = 'https://laoshi.xdf.cn/21'
resp = requests.get(url)
soup = BeautifulSoup(resp.text,'lxml')

def get_img(url, fn):
    resp = requests.get(url)
    with open('{}.png'.format(fn), 'wb') as f:
      f.write(resp.content)
#get_img('https://laoshiimg.xdf.cn/./2019-08-15/01747c7d5715e.jpg', '王志敏')

for zl in soup.select('dl'):
    for h3 in zl.select('h3'):
      name = h3.text
    for a in zl.select('p'):
      jybj = a.text
    for b in zl.select('p'):
      kc = b.text
    for img in zl.select('dt'):
      img_address = img.img.get('src')
    if '英语' in kc:
      get_img(img_address, name)

   # print(name, jybj, kc, img_address)
https://attach.52pojie.cn//forum/202003/19/235716yj3juf3zief4j2eo.png?l

https://attach.52pojie.cn//forum/202003/19/235714r1zcyr1qmcy2elyh.png?l


a5582323 发表于 2020-3-20 00:11

with open('{}.png'.format(fn), 'wb') as f:
改成
with open('{}.png'.format(fn.replace('\n','')), 'wb') as f:

jidesheng6 发表于 2020-3-20 00:17

\n?为什么会有这个?参数错误 可能不支持中文或者用wb+试试

ln19970505 发表于 2020-3-20 08:08

本帖最后由 ln19970505 于 2020-3-20 08:13 编辑

jidesheng6 发表于 2020-3-20 00:17
\n?为什么会有这个?参数错误 可能不支持中文或者用wb+试试
您好,谢谢您的回复,我想问一下这个get_img函数我直接传入参数是好用的,能爬取头像,如下图,但是我把他放到循环里,传入参数时就报错了,它应该是支持中文的,麻烦您帮我看一下。



ln19970505 发表于 2020-3-20 08:13

本帖最后由 ln19970505 于 2020-3-20 08:16 编辑

a5582323 发表于 2020-3-20 00:11
with open('{}.png'.format(fn), 'wb') as f:
改成
with open('{}.png'.format(fn.replace('\n','')), 'w ...
谢谢您,问题解决了,是因为有换行符导致参数错误,传递不进去吗?

a5582323 发表于 2020-3-20 08:26

ln19970505 发表于 2020-3-20 08:13
谢谢您,问题解决了,是因为有换行符导致参数错误,传递不进去吗?

https://i.loli.net/2020/03/20/XIjOxFlfs3LEza6.png
为什么不自己试一下?
页: [1]
查看完整版本: python爬取头像问题