Python “美丽的群体”;类型错误/属性错误:';非类型'&引用;

Python “美丽的群体”;类型错误/属性错误:';非类型'&引用;,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,这些照片都有用。(a) 显示所有“a”标记,(href)显示所有href,(new_url)显示所有新url 但是我一直得到TypeError:“NoneType”对象是不可订阅的,并且没有任何内容添加到URL列表中 如果我将其更改为a.get('href')它会说:AttributeError:'NoneType'对象没有属性“get” (其实不是谷歌,仅供参考) 这可能很简单,但我想不出来 谢谢 提供if条件,如果锚定标记可用,则获取href并附加它 import requests from

这些照片都有用。(a) 显示所有“a”标记,(href)显示所有href,(new_url)显示所有新url

但是我一直得到
TypeError:“NoneType”对象是不可订阅的
,并且没有任何内容添加到URL列表中

如果我将其更改为
a.get('href')
它会说:
AttributeError:'NoneType'对象没有属性“get”

(其实不是谷歌,仅供参考)

这可能很简单,但我想不出来


谢谢

提供if条件,如果锚定标记可用,则获取
href
并附加它

import requests
from bs4 import BeautifulSoup

url = 'https://joboutlook.gov.au/A-Z'

r = requests.get(url)
c = r.content
soup = BeautifulSoup(c, 'html.parser')

urls = []
h4s = soup.find_all('h4')
for h4 in h4s:
    a = h4.find('a')
    print(a)
    href = a['href']
    print(href)
    new_url = f'https://joboutlook.gov.au/{href}'
    print(new_url)
    urls.append(new_url)
urls

提供if条件,如果锚定标记可用,则获取
href
并附加它

import requests
from bs4 import BeautifulSoup

url = 'https://joboutlook.gov.au/A-Z'

r = requests.get(url)
c = r.content
soup = BeautifulSoup(c, 'html.parser')

urls = []
h4s = soup.find_all('h4')
for h4 in h4s:
    a = h4.find('a')
    print(a)
    href = a['href']
    print(href)
    new_url = f'https://joboutlook.gov.au/{href}'
    print(new_url)
    urls.append(new_url)
urls

更改为使用选择器,该选择器在
h4
上过滤具有
href
属性的子元素

import requests
from bs4 import BeautifulSoup
soup=BeautifulSoup(requests.get("https://joboutlook.gov.au/A-Z").text,'html.parser')
urls = []
h4s = soup.find_all('h4')
for h4 in h4s:
    a = h4.find('a')
    if a:
     href = a['href']
     #print(href)
     new_url ='https://joboutlook.gov.au/{}'.format(href)
     #print(new_url)
     urls.append(new_url)

print(urls)
您可以假设所有
a
标记都有
href
(稍微快一点,不太健壮,但可能很好)


更改为使用选择器,该选择器在
h4
上过滤具有
href
属性的子元素

import requests
from bs4 import BeautifulSoup
soup=BeautifulSoup(requests.get("https://joboutlook.gov.au/A-Z").text,'html.parser')
urls = []
h4s = soup.find_all('h4')
for h4 in h4s:
    a = h4.find('a')
    if a:
     href = a['href']
     #print(href)
     new_url ='https://joboutlook.gov.au/{}'.format(href)
     #print(new_url)
     urls.append(new_url)

print(urls)
您可以假设所有
a
标记都有
href
(稍微快一点,不太健壮,但可能很好)


您能否提供源url以重新创建问题。已更新url您基于的起始url是什么?看起来其中一个
h4
没有
a
标记。这是一个错误。只需尝试使用try-except块。是否可以提供源url以重新创建问题。更新了url您基于的起始url是什么?看起来其中一个
h4
没有
a
标记。这是一个错误。试着用一个试块,好主意!没有想过使用
select
好主意!没有考虑使用
select