找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2058|回复: 2

[求助] python3编码类问题

2

主题

4

帖子

4

积分

贫民

积分
4
黑夜里的黑喵 发表于 2018-1-6 13:16:17 | 显示全部楼层 |阅读模式
  我之前一直用2.7写,昨天晚上我想用3.6写一个爬取捧腹网的爬虫,有个问题搞了一晚上都没有解决,特此求助。
  爬虫没有写完,我是想把问题一个一个解决。一下为代码:
  1. # -*- coding:utf-8 -*-
  2. import urllib.request,re

  3. #获取源码
  4. def page(pg):
  5.     url = 'https://www.pengfu.com/index_%s.html'%pg
  6.     html = urllib.request.urlopen(url).read()#读取所有源代码
  7.     return html

  8. #title
  9. def title(html):
  10.     html = page(1)
  11.     html = html.decode('utf-8')#python3.x
  12.     reg = re.compile(r'<h1 class="dp-b"><a href=".*?" target="_blank">(.*?)</a>')#正则 .*?代表所有字符
  13.     item = re.findall(reg,html)#匹配
  14.     return item

  15. #picture
  16. def content(html):
  17.     reg = r'<img src="(.*?)" width'
  18.     item = re.findall(reg,html)
  19.     item = item.decode('utf-8')
  20.     return item

  21. #download
  22. def download(url,name):
  23.     path = 'H:\python\image\%s.jpg'%name.decode('utf-8').encode('gbk')
  24.     urllib.request.urlretrieve(url,path)

  25. for i in range(1,6):
  26.     html = page(i)
  27.     html = html.decode('utf-8')
  28.     title_list = title(html)#图片名称
  29.     title_list = title_list.decode('utf-8')
  30.     content_list = content(html)
  31.     content_list = content_list.decode('utf-8')
  32.     for i,z in zip(title_list,content_list).itervalues():
  33.         download(z,i)
  34.         print(i,z)
  35. b = title()
复制代码
以下为报错:
E:\python3.6\python.exe C:/Users/Administrator/PycharmProjects/spider/pengfu/__init__.py
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/spider/pengfu/__init__.py", line 34, in <module>
    title_list = title_list.decode('utf-8')
AttributeError: 'list' object has no attribute 'decode'

Process finished with exit code 1
贴一张图。咦,图怎么上传不了?

回复

使用道具 举报

2

主题

4

帖子

4

积分

贫民

积分
4
黑夜里的黑喵  楼主| 发表于 2018-1-7 23:17:44 | 显示全部楼层
在审核的时候,我已经吧问题解决了,代码贴出来给大家看看。
  1. # -*- coding:utf-8 -*-
  2. import urllib.request,re

  3. #获取源码
  4. def page(pg):
  5.     url = 'https://www.pengfu.com/index_%s.html'%pg
  6.     html = urllib.request.urlopen(url).read()#读取所有源代码
  7.     return html

  8. #title
  9. def title(html):
  10.     html = page(1)
  11.     html = html.decode('utf-8')#python3.x
  12.     reg = re.compile(r'<h1 class="dp-b"><a href=".*?" target="_blank">(.*?)</a>')#正则 .*?代表所有字符
  13.     item = re.findall(reg,html)#匹配
  14.     return item

  15. #picture
  16. def content(html):
  17.     reg = r'<img src="(.*?)" width'
  18.     item = re.findall(reg,html)
  19.     item = item.decode('utf-8')
  20.     return item

  21. #download
  22. def download(url,name):
  23.     path = 'H:\学习\Python\腾讯课堂学习python\image\%s.jpg'%name.decode('utf-8').encode('gbk')
  24.     urllib.request.urlretrieve(url,path)

  25. for i in range(1,6):
  26.     html = page(i)
  27.     html = html.decode('utf-8')
  28.     title_list = title(html)#图片名称
  29.     title_list = title_list.decode('utf-8')
  30.     content_list = content(html)
  31.     content_list = content_list.decode('utf-8')
  32.     for i,z in zip(title_list,content_list).itervalues():
  33.         download(z,i)
  34.         print(i,z)
  35. b = title()
复制代码
回复 支持 反对

使用道具 举报

2

主题

4

帖子

4

积分

贫民

积分
4
黑夜里的黑喵  楼主| 发表于 2018-1-7 23:19:28 | 显示全部楼层
  1. # -*- coding:utf-8 -*-
  2. import urllib.request,re

  3. #获取源码
  4. def page(pg):
  5.     url = 'https://www.pengfu.com/index_%s.html'%pg
  6.     html = urllib.request.urlopen(url).read()#读取所有源代码
  7.     return html

  8. #title
  9. def title(html):
  10.     html = page(1)
  11.     html = html.decode('utf-8')#python3.x
  12.     reg = re.compile(r'<h1 class="dp-b"><a href=".*?" target="_blank">(.*?)</a>')#正则 .*?代表所有字符
  13.     item = re.findall(reg,html)#匹配
  14.     return item

  15. #picture
  16. def content(html):
  17.     reg = r'<img src="(.*?)" width'
  18.     item = re.findall(reg,html)
  19.     item = item.decode('utf-8')
  20.     return item

  21. #download
  22. def download(url,name):
  23.     path = 'H:\学习\Python\腾讯课堂学习python\image\%s.jpg'%name.decode('utf-8').encode('gbk')
  24.     urllib.request.urlretrieve(url,path)

  25. for i in range(1,6):
  26.     html = page(i)
  27.     html = html.decode('utf-8')
  28.     title_list = title(html)#图片名称
  29.     title_list = title_list.decode('utf-8')
  30.     content_list = content(html)
  31.     content_list = content_list.decode('utf-8')
  32.     for i,z in zip(title_list,content_list).itervalues():
  33.         download(z,i)
  34.         print(i,z)
  35. b = title()
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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