Python 我不断地遇到像';结果集';对象没有属性';获取';和';非类型';对象没有属性';获取';

Python 我不断地遇到像';结果集';对象没有属性';获取';和';非类型';对象没有属性';获取';,python,django,web-scraping,beautifulsoup,Python,Django,Web Scraping,Beautifulsoup,我正试图刮去youtube上的水线,但我似乎抓不住它 如果我尝试 def youtube_link(url): youtube_page = requests.get(url, headers=headers) soupdata = BeautifulSoup(youtube_page.text, 'html5lib') video_row = soupdata.find_all('a', {'class': 'ytp-watermark

我正试图刮去youtube上的水线,但我似乎抓不住它

如果我尝试

    def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find_all('a', {'class': 'ytp-watermark'})
        entries = video_row.get('href')

        return entries
我明白了

'ResultSet' object has no attribute 'get'
'NoneType' object has no attribute 'get'
 []
如果我尝试

        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'class': 'ytp-watermark'})
        entries = video_row.get('href')

        return entries
        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})
        entries = video_row.get('href')[24]

        return entries
我明白了

'ResultSet' object has no attribute 'get'
'NoneType' object has no attribute 'get'
 []
如果我尝试

        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'class': 'ytp-watermark'})
        entries = video_row.get('href')

        return entries
        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})
        entries = video_row.get('href')[24]

        return entries
我只有一个角色

's'
如果我尝试

        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})[24]
        entries = video_row.get('href')

        return entries
        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})[24:]
        entries = video_row.get('href')

        return entries
    def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find_all('a', {'class': 'ytp-title-link'})
        entries = [{'text': div.get('href'),
                    } for div in video_row]

        return entries
我明白了

24
如果我尝试

        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})[24]
        entries = video_row.get('href')

        return entries
        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})[24:]
        entries = video_row.get('href')

        return entries
    def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find_all('a', {'class': 'ytp-title-link'})
        entries = [{'text': div.get('href'),
                    } for div in video_row]

        return entries
我明白了

如果我尝试

def panties():
    from lxml import html
    pan_url = 'http://www.panvideos.com'
    shtml = requests.get(pan_url, headers=headers)
    soup = BeautifulSoup(shtml.text, 'html5lib')
    video_row = soup.find_all('div', {'class': 'video'})

    def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})
        entries = [{'text': div.get('href'),
                    } for div in video_row][24]


    return entries
我明白了

如果我尝试

        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})[24]
        entries = video_row.get('href')

        return entries
        def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find('a', {'target': '_blank'})[24:]
        entries = video_row.get('href')

        return entries
    def youtube_link(url):
        youtube_page = requests.get(url, headers=headers)

        soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
        video_row = soupdata.find_all('a', {'class': 'ytp-title-link'})
        entries = [{'text': div.get('href'),
                    } for div in video_row]

        return entries
我明白了

'ResultSet' object has no attribute 'get'
'NoneType' object has no attribute 'get'
 []
如果我使用chrome inspect并将鼠标悬停在水位线上方

        <a class="ytp-watermark yt-uix-sessionlink" target="_blank" aria-label="Watch on www.youtube.com" data-sessionlink="feature=player-watermark" href="https://www.youtube.com/watch?v=Xjww1pgKgnU" data-layer="7">
        <svg xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" version="1.1" viewBox="0 0 77 34" width="100%">
            ........
        </svg>
    </a>
它获取一个url,使用该url作为获取详细信息页面的方式,并从该页面获取信息并返回。由于某些原因,链接被返回为无。如果我尝试“全部查找”或“查找”,它将不会返回单个a元素。但如果我寻找h1,它会起作用

编辑我尝试了不同的解析器

html.parser、lxml和html5lib

编辑:

我相信这些数据不能被删除,因为它们来自媒体播放器。当我这么做的时候

 video_row = soupdata.find_all('body')

我要找的数据没有显示出来。所以这不是我的问题,我也不认为这是一个bug或者其他任何不能通过正常方式获得的东西。链接标签元标签和一些其他标签无法抓取。

当我为类使用完整值时,我得到了href

video_row = soupdata.find('a', {'class': 'ytp-watermark yt-uix-sessionlink'})
如果您想使用findAll,您必须迭代条目。例如,创建自己的附加列表项\u final并执行以下操作:

video_rows = soupdata.findAll('a', {'class': 'ytp-watermark yt-uix-sessionlink'})
entries_final = []
for row in video_rows:
    entries_final.append(row.get('href'))

然后
返回条目\u final

当我为类使用完整值时,我得到了href

video_row = soupdata.find('a', {'class': 'ytp-watermark yt-uix-sessionlink'})
如果您想使用findAll,您必须迭代条目。例如,创建自己的附加列表项\u final并执行以下操作:

video_rows = soupdata.findAll('a', {'class': 'ytp-watermark yt-uix-sessionlink'})
entries_final = []
for row in video_rows:
    entries_final.append(row.get('href'))

然后
returnentries\u final

当我尝试“NoneType”对象不可iterable时出现的错误,如果我确实找到了所有返回方括号[]only我的错误“NoneType”对象不可iterable。我在django应用程序中使用它,如果这有什么不同的话。而且我想要的是youtube链接而不是panvideo链接我开始觉得网站在阻止我怎么我的错误当我尝试“NoneType”对象时是不可编辑的如果我找到了所有它返回方括号[]仅我的错误“NoneType”对象是不可编辑的。我在django应用程序中使用它,如果这有什么不同的话。另外,我想要的是youtube链接而不是panvideo链接。我开始认为该网站在某种程度上阻止了我。如果
soupdata.find_all()
返回
[]
,这意味着该元素在文档中不存在。可能水印是使用JavaScript动态添加的,在这种情况下,它将出现在Chrome中,但不是使用
requests.get()
下载的文档。如果
soupdata.find_all()
返回
[]
,则表示文档中不存在该元素。可能水印是使用JavaScript动态添加的,在这种情况下,它将出现在Chrome中,而不是使用
requests.get()下载的文档。