找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3872|回复: 5

[已解决] 关于python2的AttributeError

9

主题

39

帖子

39

积分

贫民

积分
39
午夜垃圾桶 发表于 2016-10-20 09:51:01 | 显示全部楼层 |阅读模式
最近在试一下怎么写爬虫,尝试着从有趣网站之家保存所有的有趣网站名及链接,并保存在txt文件中,可是遇到了一个问题,就是在进行递归下一页的链接地址的时候出现了一个AttributeError,看了好久都找不到原因,求助各位大神
  1. #!/usr/bin/python
  2. # -*- coding:utf-8 -*-

  3. import urllib
  4. import re

  5. url = 'http://youquhome.com/'
  6. def info_get(urls):
  7.         urlcode = urllib.urlopen(urls).read()
  8.         titlere = r'<a href="http://youquhome.com/.*?/" rel="bookmark">(.*?[\u4e00-\u9fa5]*?.*?)</a>'   #网页标题正则
  9.         urlre = r'<a href="(.*?)" target="_blank" rel="external nofollow">'  #网页链接正则
  10.         nextre = r'<a class="nextpostslink" rel="next" href="(.*?)">'    #下一页正则
  11.         global codelist
  12.         global urllist
  13.         codelist = re.findall(titlere,urlcode)
  14.         urllist = re.findall(urlre,urlcode)
  15.         nexturl = re.findall(nextre,urlcode)      #下一页的链接
  16.         return nexturl

  17. def info_write():
  18.         x = 0
  19.         fo = open('youquurl.txt','a')
  20.         while True:
  21.                 fo.write(codelist[x]+':   ')
  22.                 fo.write(urllist[x]+'\n')
  23.                 x+=1
  24.                 if x==len(codelist) or x==len(urllist): #比较的作用是判断列表是否到了最后一个元素
  25.                         break
  26.         fo.close()

  27. if __name__ == '__main__':
  28.         while url != []:
  29.                 url = info_get(url)
  30.                 info_write()
  31.         print 'Done!'
复制代码
下面是错误信息:
Traceback (most recent call last):
  File "youqu_urlget.py", line 33, in <module>
    url = info_get(url)
  File "youqu_urlget.py", line 9, in info_get
    urlcode = urllib.urlopen(urls).read()
  File "/usr/lib/python2.7/urllib.py", line 87, in urlopen
    return opener.open(url)
  File "/usr/lib/python2.7/urllib.py", line 180, in open
    fullurl = unwrap(toBytes(fullurl))
  File "/usr/lib/python2.7/urllib.py", line 1060, in unwrap
    url = url.strip()
AttributeError: 'list' object has no attribute 'strip'


各位大神帮帮忙。。。

回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2016-10-22 19:20:45 | 显示全部楼层
AttributeError: 'list' object has no attribute 'strip'

错误信息是: 列表对象没有strip属性

urlcode = urllib.urlopen(urls).read() 这一句中urls 有时会是列表, 这时要取出其中的单个url, 单独处理
python3.4.4, win10
回复 支持 反对

使用道具 举报

9

主题

39

帖子

39

积分

贫民

积分
39
午夜垃圾桶  楼主| 发表于 2016-10-23 22:33:39 | 显示全部楼层
whydo1 发表于 2016-10-22 19:20
AttributeError: 'list' object has no attribute 'strip'

错误信息是: 列表对象没有strip属性

噢  我知道了 我把re.findall()返回的是列表这件事给忘了, 谢谢啊
回复 支持 反对

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2016-10-24 08:13:25 | 显示全部楼层
python3.4.4, win10
回复

使用道具 举报

0

主题

18

帖子

18

积分

贫民

积分
18
kushao1267 发表于 2016-10-25 16:54:43 | 显示全部楼层
小伙子学好英文,这样的问题不是问题
回复 支持 反对

使用道具 举报

9

主题

39

帖子

39

积分

贫民

积分
39
午夜垃圾桶  楼主| 发表于 2016-10-31 22:46:39 | 显示全部楼层
kushao1267 发表于 2016-10-25 16:54
小伙子学好英文,这样的问题不是问题

哈哈 英文确实太烂了
回复 支持 反对

使用道具 举报

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

本版积分规则

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