寄安 发表于 2021-10-3 18:59:46

'str' object has no attribute 'get'

目的是爬取今日头条街拍图片,大哥们帮我看看这个怎么解决

import requests
from requests.exceptions import RequestException
from urllib.parse import urlencode
import json

def get_page_index(page_num):
    data = {
      'keyword': '街拍',
      'pd': 'atlas',
      'source': 'search_subtab_switch',
      'dvpf': 'pc',
      'aid': '4916',
      'page_num': 'page_num',
      'rawJSON': '1',
      'search_id': '202110031811450101501322040B5D277C'
    }
    url = 'https://so.toutiao.com/search?' + urlencode(data)
    response = requests.get(url)
    try:
      if response.status_code == 200:
            return response.text
      return None
    except RequestException:
      print('索引失败')
      return None

def parse_page_index(html):
    images = html.get('rawData').get('data')
    for image in images:
      link = image.get('img_url')
      yield link



def main(page_num):
    html = get_page_index(page_num)
    for url in parse_page_index(html):
      print(url)

if __name__ == '__main__':
    for i in range(2):
      main(i)



下面是提示错误信息

Traceback (most recent call last):
File "E:\QMDownload\今日头条\main.py", line 42, in <module>
    main(i)
File "E:\QMDownload\今日头条\main.py", line 37, in main
    for url in parse_page_index(html):
File "E:\QMDownload\今日头条\main.py", line 28, in parse_page_index
    images = html.get('rawData').get('data')
AttributeError: 'str' object has no attribute 'get'

wp231957 发表于 2021-10-3 19:32:22

images = html.get('rawData').get('data')
这句代码狠另人迷惑

寄安 发表于 2021-10-3 19:37:38

wp231957 发表于 2021-10-3 19:32
images = html.get('rawData').get('data')
这句代码狠另人迷惑

我看的视频有点老了,网页不一样,所以我就找了一篇差不多的博客看
我写的就是在这篇博客看的

寄安 发表于 2021-10-3 19:41:04

wp231957 发表于 2021-10-3 19:32
images = html.get('rawData').get('data')
这句代码狠另人迷惑

就像这样,我也没啥头绪,咋处理

wp231957 发表于 2021-10-3 20:04:04

寄安 发表于 2021-10-3 19:41
就像这样,我也没啥头绪,咋处理

这句代码images = html.get('rawData').get('data')
很像是处理json数据,所以呢,写爬虫代码呢
还是要有自己的思想,说白了就是自己写
别人的毕竟是别人的,有些人代码根本就不全
你的拿来主义根本就没用

寄安 发表于 2021-10-3 20:19:09

wp231957 发表于 2021-10-3 20:04
这句代码images = html.get('rawData').get('data')
很像是处理json数据,所以呢,写爬虫代码呢
还是要 ...

是各种不懂
我的思想还是要建立在学了的基础上,在看视频的过程中,肯定有错误,我就要问,问了就学了7788了。
但是我也不能总是看完各种基础知识,前端后端,再来学,再来敲自己的代码,人无完人,而且也没有那么多时间一直做一件事,在一个个小项目中才能更好的锻炼自己的思想
所以,我还是想问问这个咋解决的,我也在网上搜了好多,但是大多数说的不是一件事,大佬可以给我说一下解决方法吗,虽然我的拿来主义不靠谱,但是这也是目前最好的办法了,对我来说确实是这样。

wp231957 发表于 2021-10-3 20:30:52

寄安 发表于 2021-10-3 20:19
是各种不懂
我的思想还是要建立在学了的基础上,在看视频的过程中,肯定有错误,我就要问,问了就学了77 ...

没在电脑旁,感觉①楼代码是过时的代码,也就是说是不能运行的代码,或者说是错的代码
写爬虫确实需要一些前端知识,这是肯定的
至于如何解决,就是抛弃所有的前辈代码
自己根据需求,自己去抓包,去分析网页
不会抓包,咋学爬虫啊??

寄安 发表于 2021-10-3 20:33:30

wp231957 发表于 2021-10-3 20:30
没在电脑旁,感觉①楼代码是过时的代码,也就是说是不能运行的代码,或者说是错的代码
写爬虫确实需要一 ...

嗯,说的有道理,那我再看看

wp231957 发表于 2021-10-3 20:33:39

寄安 发表于 2021-10-3 20:19
是各种不懂
我的思想还是要建立在学了的基础上,在看视频的过程中,肯定有错误,我就要问,问了就学了77 ...

除非你不想学,那就找人根据你的需求,别人给你一段能满足需求的代码,但是这样会有,过一段时间,网站修改,代码又不能用了
所以自己会才是真的会

寄安 发表于 2021-10-3 20:36:29

wp231957 发表于 2021-10-3 20:33
除非你不想学,那就找人根据你的需求,别人给你一段能满足需求的代码,但是这样会有,过一段时间,网站修 ...

确实

白two 发表于 2021-10-3 20:55:56

给个建议,可以把 json 数据转换为字典来进行解析
而且你想要图片的话应该找的是图片对应的链接
页: [1]
查看完整版本: 'str' object has no attribute 'get'