soup.select() returns 一个空列表
soup.select() returns an empty list
我遇到了 .select 的问题,在练习网络抓取时总是 return 是一个空列表 。
我正在处理以下页面:https://presse.ania.net/news/?page=1 使用 BeautifulSoup.
我正在获取和解析 HTML 如下:
url = f"https://presse.ania.net/news/?page=1"
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
mr = requests.get(url, headers = headers)
soupmp = bs(mr.content, "lxml")
我尝试检索页面上显示的每篇文章的网址,在 class“标题 row-space-1”下(我使用 chrome 的开发人员工具来查找 class,像其他帖子中建议的那样禁用 JavaScript),并将它们放在名为“news”的列表中
news = []
for link in soupmp.select("a.title.row-space-1[href]"):
news.append(link.get('href'))
但是当我打印 'news'
时,我的列表一直是空的
[]
我尝试在 Whosebug 上搜索:
- 在网站上禁用 JavaScript
- 添加休眠时间让页面下载
- 使用 .find_all, .找到并 .select,首先尝试使用 CSS select 或 kwargs(所有 return 空列表或 None 类型 object)。
None 这些都有效,我被我的错误困住了。我认为我理解这个 HTML 和 selecting class 与 CSS 的方式有一些特定的东西,但我找不到什么(部分原因是我成功地使用了这段代码对于其他网站更早。)。
你能告诉我我缺少什么吗?
感谢您的帮助!
您可以试试这个并插入所需元素的 class。
希望对你有所帮助。
soup = BeautifulSoup(html_source, 'html.parser')
# Find element by class which have href attr
el = soup.find(class_='1', href=True)
# Print href value
print(el['href'])
试试这个:
import requests
from bs4 import BeautifulSoup
css = ".card.item.thumbnail.card-topic .title a"
url = "https://presse.ania.net/news/?page=1"
headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'}
soup = [
f'https://presse.ania.net{a["href"]}' for a in
BeautifulSoup(requests.get(url, headers=headers).content, "lxml").select(css)
]
print("\n".join(soup))
输出:
https://presse.ania.net/actualites/cp-ania-reaction-suite-a-lannonce-de-la-composition-du-nouveau-gouvernement-delisabeth-borne-lania-salue-la-double-reconnaissance-de-la-souverainete-industrielle-et-alimentaire-au-coeur-du-gouvernement-5c05-53c7f.html
https://presse.ania.net/actualites/cp-ania-nomination-de-marie-buisson-au-poste-de-directrice-juridique-7a6b-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-renegociations-commerciales-la-filiere-agroalimentaire-inquiete-bfe7-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-guerre-en-ukraine-et-derogations-detiquetage-eviter-les-ruptures-tout-en-garantissant-la-securite-sanitaire-et-la-transparence-de-linformation-aux-consommateurs-9824-53c7f.html
https://presse.ania.net/actualites/cp-ania-il-est-urgent-de-re-ouvrir-les-negociations-commerciales-c4d4-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-reunion-interministerielle-sur-la-guerre-en-ukraine-appel-du-secteur-alimentaire-pour-des-mesures-durgence-abb3-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-signature-de-lavenant-au-contrat-strategique-de-la-filiere-agroalimentaire-2022-2023-138f-53c7f.html
https://presse.ania.net/actualites/ania-note-de-conjoncture-economique-une-rentree-2022-sous-tensions-216b-53c7f.html
https://presse.ania.net/actualites/cp-ania-presidentielles-2022-le-grand-oral-de-lagroalimentaire-lalimentation-est-laffaire-de-tous-les-francais-lindustrie-alimentaire-a-la-rencontre-des-candidats-a-la-presidentielle-fe01-53c7f.html
https://presse.ania.net/actualites/cp-ania-negociations-commerciales-avec-la-grande-distribution-j-5-le-compte-ny-est-toujours-pas-au-risque-de-lasphyxie-collective-de-toute-la-filiere-830b-53c7f.html
https://presse.ania.net/actualites/cp-ania-lania-engagee-pour-leducation-et-la-promotion-des-comportements-favorables-a-la-sante-et-a-la-planete-fa16-53c7f.html
https://presse.ania.net/actualites/cp-ania-varenne-de-leau-lania-salue-les-engagements-pris-par-letat-et-rappelle-la-mobilisation-des-entreprises-5ae0-53c7f.html
我遇到了 .select 的问题,在练习网络抓取时总是 return 是一个空列表 。 我正在处理以下页面:https://presse.ania.net/news/?page=1 使用 BeautifulSoup.
我正在获取和解析 HTML 如下:
url = f"https://presse.ania.net/news/?page=1"
headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
mr = requests.get(url, headers = headers)
soupmp = bs(mr.content, "lxml")
我尝试检索页面上显示的每篇文章的网址,在 class“标题 row-space-1”下(我使用 chrome 的开发人员工具来查找 class,像其他帖子中建议的那样禁用 JavaScript),并将它们放在名为“news”的列表中
news = []
for link in soupmp.select("a.title.row-space-1[href]"):
news.append(link.get('href'))
但是当我打印 'news'
时,我的列表一直是空的[]
我尝试在 Whosebug 上搜索:
- 在网站上禁用 JavaScript
- 添加休眠时间让页面下载
- 使用 .find_all, .找到并 .select,首先尝试使用 CSS select 或 kwargs(所有 return 空列表或 None 类型 object)。
None 这些都有效,我被我的错误困住了。我认为我理解这个 HTML 和 selecting class 与 CSS 的方式有一些特定的东西,但我找不到什么(部分原因是我成功地使用了这段代码对于其他网站更早。)。
你能告诉我我缺少什么吗?
感谢您的帮助!
您可以试试这个并插入所需元素的 class。 希望对你有所帮助。
soup = BeautifulSoup(html_source, 'html.parser')
# Find element by class which have href attr
el = soup.find(class_='1', href=True)
# Print href value
print(el['href'])
试试这个:
import requests
from bs4 import BeautifulSoup
css = ".card.item.thumbnail.card-topic .title a"
url = "https://presse.ania.net/news/?page=1"
headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'}
soup = [
f'https://presse.ania.net{a["href"]}' for a in
BeautifulSoup(requests.get(url, headers=headers).content, "lxml").select(css)
]
print("\n".join(soup))
输出:
https://presse.ania.net/actualites/cp-ania-reaction-suite-a-lannonce-de-la-composition-du-nouveau-gouvernement-delisabeth-borne-lania-salue-la-double-reconnaissance-de-la-souverainete-industrielle-et-alimentaire-au-coeur-du-gouvernement-5c05-53c7f.html
https://presse.ania.net/actualites/cp-ania-nomination-de-marie-buisson-au-poste-de-directrice-juridique-7a6b-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-renegociations-commerciales-la-filiere-agroalimentaire-inquiete-bfe7-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-guerre-en-ukraine-et-derogations-detiquetage-eviter-les-ruptures-tout-en-garantissant-la-securite-sanitaire-et-la-transparence-de-linformation-aux-consommateurs-9824-53c7f.html
https://presse.ania.net/actualites/cp-ania-il-est-urgent-de-re-ouvrir-les-negociations-commerciales-c4d4-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-reunion-interministerielle-sur-la-guerre-en-ukraine-appel-du-secteur-alimentaire-pour-des-mesures-durgence-abb3-53c7f.html
https://presse.ania.net/actualites/cp-ania-lca-signature-de-lavenant-au-contrat-strategique-de-la-filiere-agroalimentaire-2022-2023-138f-53c7f.html
https://presse.ania.net/actualites/ania-note-de-conjoncture-economique-une-rentree-2022-sous-tensions-216b-53c7f.html
https://presse.ania.net/actualites/cp-ania-presidentielles-2022-le-grand-oral-de-lagroalimentaire-lalimentation-est-laffaire-de-tous-les-francais-lindustrie-alimentaire-a-la-rencontre-des-candidats-a-la-presidentielle-fe01-53c7f.html
https://presse.ania.net/actualites/cp-ania-negociations-commerciales-avec-la-grande-distribution-j-5-le-compte-ny-est-toujours-pas-au-risque-de-lasphyxie-collective-de-toute-la-filiere-830b-53c7f.html
https://presse.ania.net/actualites/cp-ania-lania-engagee-pour-leducation-et-la-promotion-des-comportements-favorables-a-la-sante-et-a-la-planete-fa16-53c7f.html
https://presse.ania.net/actualites/cp-ania-varenne-de-leau-lania-salue-les-engagements-pris-par-letat-et-rappelle-la-mobilisation-des-entreprises-5ae0-53c7f.html