鱼C论坛

 找回密码
 立即注册
查看: 1460|回复: 8

encoding error 报错求助

[复制链接]
发表于 2018-11-21 16:44:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 罗同学 于 2018-11-21 22:30 编辑

之前写的一个爬某不太和谐论坛图的代码、今天有鱼油回帖说报错、最近比较生疏、看了半天也搜了半天还是没有发现问题所在,只感觉是编码哪里出了问题、请各位大神帮忙看看

另外爬到的图都是不和谐的,请各位帮忙的时候一定要注意周围环境、避免在公司或者是女票、父母在身边、影响了家庭和睦就不好了,特别不和谐的那种,28禁的那种

报错内容:encoding error : input conversion failed due to input error, bytes 0x9C 0x00 0x00 0x29

原帖名称《很惭愧、写了一个小爬虫——小草社区》

代码如下:
  1. import requests
  2. from bs4 import BeautifulSoup as bs
  3. import re
  4. import os
  5. import socket
  6. import time
  7. import threading


  8. def url_open(url):
  9.     socket.setdefaulttimeout(20)
  10.     headers = {
  11.         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER'}
  12.     res = requests.get(url, headers=headers)

  13.     return res


  14. def save(url):  # 传入每个子网页链接
  15.     res = url_open(url)
  16.     res.encoding = 'gbk'
  17.     soup = bs(res.text, 'lxml')
  18.     title = soup.find('title').text.split('-')[0]  # 标题
  19.     #os.mkdir(title)
  20.     # os.chdir(title)
  21.     temp = soup.find_all('tr', class_='tr3')
  22.     img = re.findall(r'data-src="(.*?jpg)" type', str(temp))
  23.    
  24.    
  25.     imglist = []

  26.     for each in img:
  27.         imglist.append(each)
  28.     for each in imglist:
  29.         filename = each.split('/')[-1]
  30.         img = url_open(each)
  31.         print('saving...+%s'%filename)

  32.         with open(title+filename, 'wb')as f:
  33.             f.write(img.content)
  34.     #os.chdir('..')




  35. if __name__ == '__main__':
  36.     os.makedirs('1024', exist_ok=True)
  37.     os.chdir('1024')
  38.     url = 'http://cl.9h7.xyz/thread0806.php?fid=16&search=&page=1'  #默认爬取第一个页面,毕竟要注意身体,需要多个页面的话,自己加个for循环也不是什么难事~
  39.     urlhead = 'http://cl.9h7.xyz'   #页面解析出来的连接前面需要加上这个头才能打开,根据多年经验这个头是会变的,如果哪天不能用了自己看下是不是这个头变了
  40.     res = url_open(url)
  41.     res.encoding = 'gbk'

  42.     '''找到页面中的所有子网页'''
  43.     soup = bs(res.text, 'lxml')
  44.     temp = soup.find_all('td', class_="tal")
  45.     link = []
  46.     for each in temp:
  47.         link.append(urlhead + each.h3.a.get('href'))
  48.     # del link[0:10]

  49.     downloads = []
  50.     for each in link:
  51.         print(each)

  52.         down = threading.Thread(target=save, args=[each])
  53.         downloads.append(down)

  54.         down.start()
  55.     for each in downloads:
  56.         each.join()
  57.     print('Done')

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-21 16:47:30 | 显示全部楼层
领导,我真的在学python
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-21 16:51:20 | 显示全部楼层
塔利班 发表于 2018-11-21 16:47
领导,我真的在学python

大神、请正面回答问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-21 16:52:41 | 显示全部楼层
本帖最后由 塔利班 于 2018-11-21 16:56 编辑

现在url输入就重定位到一个满18岁的页面,所以直接Done了,并米有出现encoding error而是没找到内容,直接结束了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-21 22:30:00 | 显示全部楼层
塔利班 发表于 2018-11-21 16:52
现在url输入就重定位到一个满18岁的页面,所以直接Done了,并米有出现encoding error而是没找到内容,直接 ...

改了代码里的链接地址,大佬再看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-21 22:50:32 | 显示全部楼层
罗同学 发表于 2018-11-21 22:30
改了代码里的链接地址,大佬再看看

save函数我urlopen都是11004错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-23 11:02:51 | 显示全部楼层
塔利班 发表于 2018-11-21 22:50
save函数我urlopen都是11004错误

救命
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-23 11:05:54 | 显示全部楼层

我面对这种网站没有抵抗力= =,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-23 11:34:32 | 显示全部楼层
没问题啊,这个网站。
没什么难度吧。  
你的代码我没测试,直接写了一份
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-8 20:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表