|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
爬了个微博,但出现了这个错误:
AttributeError: 'tuple' object has no attribute 'dumps'
代码如下,求大神:
- import requests
- import pandas
- import json
- from urllib.parse import urlencode
- from pyquery import PyQuery as pq
- base_url = 'https://m.weibo.cn/api/container/getIndex?'
- headers = {
- 'Host': 'm.weibo.cn',
- 'Referer': 'https://m.weibo.cn/u/2830678474',
- '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',
- 'X-Requested-With': 'XMLHttpRequest'
- }
- def get_page(page):
- params = {
- 'type': 'uid',
- 'value': '2830678474',
- 'containerid': '1076032830678474',
- 'page': page
- }
- url = base_url + urlencode(params)
- try:
- response = requests.get(url, headers=headers)
- if response.status_code == 200:
- return response.json(), page
- except requests.ConnectionError as e:
- print('Error', e.args)
- def parse_page(json, page: int):
- if json:
- items = json.get('data').get('cards')
- for index, item in enumerate(items):
- if page == 1 and index == 1:
- continue
- else:
- item = item.get('mblog')
- weibo = {}
- weibo['id'] = item.get('id')
- weibo['text'] = pq(item.get('text')).text()
- weibo['attitudes'] = item.get('attitudes_count')
- weibo['comments'] = item.get('comments_count')
- weibo['reposts'] = item.get('reposts_count')
- yield weibo
- def write_to_file(content):
- with open(r'C:\Users\lenovo\Desktop\爬虫\微博\weibo.txt','a',encoding='gb18030') as f:
- f.write(json.dumps(content,ensure_ascii=False)+'\n')#输出的是中文
- f.close()
- if __name__ == '__main__':
- for page in range(1, 10 + 1):
- json = get_page(page)
- results = parse_page(*json)
- for result in results:
- print(result)
- write_to_file(result)
复制代码 |
|