鱼C论坛

 找回密码
 立即注册
查看: 567|回复: 4

爬虫输出不了结果

[复制链接]
发表于 2018-8-16 10:37:13 | 显示全部楼层 |阅读模式

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

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

x
爬了个微博,但出现了这个错误:
AttributeError: 'tuple' object has no attribute 'dumps'
代码如下,求大神:
  1. import requests
  2. import pandas
  3. import json
  4. from urllib.parse import urlencode
  5. from pyquery import PyQuery as pq

  6. base_url = 'https://m.weibo.cn/api/container/getIndex?'
  7. headers = {
  8.     'Host': 'm.weibo.cn',
  9.     'Referer': 'https://m.weibo.cn/u/2830678474',
  10.     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
  11.     'X-Requested-With': 'XMLHttpRequest'
  12. }


  13. def get_page(page):
  14.     params = {
  15.         'type': 'uid',
  16.         'value': '2830678474',
  17.         'containerid': '1076032830678474',
  18.         'page': page
  19.     }
  20.     url = base_url + urlencode(params)
  21.     try:
  22.         response = requests.get(url, headers=headers)
  23.         if response.status_code == 200:
  24.             return response.json(), page
  25.     except requests.ConnectionError as e:
  26.         print('Error', e.args)


  27. def parse_page(json, page: int):
  28.     if json:
  29.         items = json.get('data').get('cards')
  30.         for index, item in enumerate(items):
  31.             if page == 1 and index == 1:
  32.                 continue
  33.             else:
  34.                 item = item.get('mblog')
  35.                 weibo = {}
  36.                 weibo['id'] = item.get('id')
  37.                 weibo['text'] = pq(item.get('text')).text()
  38.                 weibo['attitudes'] = item.get('attitudes_count')
  39.                 weibo['comments'] = item.get('comments_count')
  40.                 weibo['reposts'] = item.get('reposts_count')
  41.                 yield weibo


  42. def write_to_file(content):
  43.     with open(r'C:\Users\lenovo\Desktop\爬虫\微博\weibo.txt','a',encoding='gb18030') as f:
  44.         f.write(json.dumps(content,ensure_ascii=False)+'\n')#输出的是中文
  45.         f.close()

  46. if __name__ == '__main__':
  47.     for page in range(1, 10 + 1):
  48.         json = get_page(page)
  49.         results = parse_page(*json)
  50.         for result in results:
  51.             print(result)
  52.             write_to_file(result)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 10:44:21 | 显示全部楼层
几个模块完全没用过。搜了下json.dumps(a) a的内容是字典dict,你这是用逗号分隔的元祖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-16 10:44:59 | 显示全部楼层
重名了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-16 10:48:01 | 显示全部楼层

哪里重名了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-16 10:49:59 | 显示全部楼层

模块名json和变量json重名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 20:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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