【问题标题】:How can BeautifulSoup be used to extract ‘href’ links from a website?BeautifulSoup 如何用于从网站中提取“href”链接?
【发布时间】:2021-09-28 11:18:31
【问题描述】:

我需要网站的 url 数据,请从 href 中提取 url 的数据

from bs4 import BeautifulSoup
    import requests
    
    res = requests.get('http://smartcatalog.emo-milano.com/it/catalogo/elenco-alfabetico/400/A')
    
    soup = BeautifulSoup(res.text, 'lxml')
    links=soup.find_all('div',class_='exbox-body')
    for link in links:
        url=[link['href']]
        print(url)

【问题讨论】:

  • 好的 - 有什么问题?
  • 它会给我key error href

标签: python web-scraping beautifulsoup


【解决方案1】:

我需要网站的 url 数据,请从 href 中提取 url 的数据

试试下面的。查找a 元素并提取href 属性。

from bs4 import BeautifulSoup
import requests

res = requests.get('http://smartcatalog.emo-milano.com/it/catalogo/elenco-alfabetico/400/A')
soup = BeautifulSoup(res.text, 'lxml')
urls = set(a['href'] for a in soup.find_all('a') if a['href'].startswith('/it'))
for idx,url in enumerate(urls,1):
    print(f'{idx}) {url}')

输出

1) /it/espositore/ate-antriebstechnik-und-entwicklungs-gmbh-co-kg
2) /it/catalogo/elenco-alfabetico/400/D
3) /it/catalogo/elenco-alfabetico/400/R
4) /it/espositore/aipnd-ets
5) /it/catalogo/elenco-alfabetico/400/U
6) /it/espositore/alleantia-srl
7) /it/espositore/anca-pty-ltd
8) /it/catalogo/elenco-alfabetico/400/G
9) /it/catalogo/elenco-alfabetico/400/H
10) /it/catalogo/elenco-alfabetico/400/P
11) /it/espositore/ajans-organize-kamuran-tecimen
12) /it/catalogo/elenco-alfabetico/400/K
13) /it/espositore/alfred-h-schutte-gmbh-co-kg
14) /it/catalogo/elenco-alfabetico/400/F
15) /it/espositore/aircnc-s-r-l
16) /it/espositore/alteyco-system-s-l
17) /it/espositore/azak-takim-teknolojileri-anonim-sirketi
18) /it/espositore/asfimet-srl
19) /it/espositore/ar-filtrazioni-srl
20) /it/catalogo/elenco-alfabetico/400/N
21) /it/
22) /it/espositore/absolent-group-ab
23) /it/catalogo/elenco-alfabetico/400/C
24) /it/catalogo/elenco-alfabetico/400/V
25) /it/espositore/allied-machine-engineering-europe-co-ltd
26) /it/catalogo/elenco-alfabetico/400/A
27) /it/catalogo/elenco-alfabetico/400/I
28) /it/espositore/argor-aljba-sa
29) /it/espositore/autoblok-spa
30) /it/espositore/amdm-mexican-association-of-machinery-distributors
31) /it/espositore/anaj-czech-a-s
32) /it/catalogo/elenco-alfabetico/400/Y
33) /it/espositore/aita-associazione-italiana-tecnologie-additive-1
34) /it/espositore/asservimentipresse-srl
35) /it/espositore/alicona-imaging-gmbh
36) /it/espositore/autodesk-inc
37) /it/espositore/applyca-srl
38) /it/catalogo/elenco-alfabetico/400/S
39) /it/espositore/akko-oto-mak-hirdavat-sanayi-tic-ltd-sti
40) /it/espositore/amt-the-association-for-manufacturing-technology
41) /it/espositore/axa-entwicklungs-und-maschinenbau-gmbh
42) /it/catalogo/elenco-alfabetico/400
43) /it/catalogo/elenco-alfabetico/400/E
44) /it/espositore/aeroel-srl
45) /it/espositore/alberti-umberto-srl
46) /it/espositore/algra-spa
47) /it/espositore/apn-alpa
48) /it/espositore/amf-andreas-maier-gmbh-co-kg
49) /it/espositore/acubez-modular-automation-ltd
50) /it/espositore/agenzia-ice
51) /it/catalogo/elenco-alfabetico/400/O
52) /it/catalogo/elenco-alfabetico/400/W
53) /it/catalogo/elenco-alfabetico/400/B
54) /it/catalogo/categorie-merceologiche/400
55) /it/catalogo/elenco-alfabetico/400/X
56) /it/espositore/ares-carbide-srl
57) /it/catalogo/elenco-alfabetico/400/L
58) /it/espositore/atf-cooling-gmbh
59) /it/catalogo/elenco-alfabetico/400/M
60) /it/catalogo/elenco-alfabetico/400/Q
61) /it/espositore/agathon-ag-1
62) /it/catalogo/elenco-alfabetico/400/Z
63) /it/catalogo/elenco-alfabetico/400/J
64) /it/catalogo/elenco-alfabetico/400/T
65) /it/espositore/atomat-spa
66) /it/espositore/afm-cluster-for-advanced-digital-manufacturing-of-spain
67) /it/espositore/a-mannesmann-maschinenfabrik-gmbh
68) /it/mappa-generale/400
69) /it/espositore/az-spa
70) /it/espositore/automator-marking-systems-srl
71) /it/catalogo/ricerca-avanzata/400

【讨论】:

  • 简要说明您所做的更改以及它如何具体解决 OP 的问题,这将大大受益于此答案。
  • 他们为什么给我youtube,facebook`链接??
  • 我要找的链接是href="/it/espositore/absolent-group-ab"
  • @ArslanAziz 因为它们是您页面中的链接..
  • @ArslanAziz 代码已修改。请接受答案。
猜你喜欢
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
相关资源
最近更新 更多