I am trying to scrape the href attribute from links from a page, but I end up with []
as the output
My desired output is: https://www.pigiame.co.ke/listings/nissan-latio-2016-36000-kms-5300124
Advertisement
Answer
You can try:
JavaScript
x
25
25
1
import re
2
import requests
3
import urllib.parse
4
from bs4 import BeautifulSoup
5
6
url = "https://www.pigiame.co.ke/cars"
7
8
headers = {
9
"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:107.0) Gecko/20100101 Firefox/107.0",
10
}
11
12
soup = BeautifulSoup(requests.get(url, headers=headers).content, "html.parser")
13
14
links = [
15
item.a["href"] for item in soup.select(".listings-cards__list-item:has(a)")
16
]
17
18
for link in links:
19
soup = BeautifulSoup(requests.get(link).content, "html.parser")
20
data = soup.select_one(".btn-whatsapp")["href"]
21
data = urllib.parse.unquote(data)
22
23
phone = re.search(r"phone=(.*?)&", data).group(1)
24
print("{:<20} {}".format(phone, link))
25
Prints:
JavaScript
1
16
16
1
+254723099904 https://www.pigiame.co.ke/listings/nissan-note-5253578
2
+254722935411 https://www.pigiame.co.ke/listings/honda-freed-7-seater-2015-5291221
3
+254722763845 https://www.pigiame.co.ke/listings/2006-bmw-x3-2500cc-petrol-155000kms-5241375
4
+254722710833 https://www.pigiame.co.ke/listings/mazda-mpv-2006-5273382
5
+254713193417 https://www.pigiame.co.ke/listings/landrover-109-very-clean-accident-free-5282118
6
+254708467397 https://www.pigiame.co.ke/listings/landcrusser-prado-tx-fully-loaded-with-sunroof-2016-model-5304294
7
+254708467397 https://www.pigiame.co.ke/listings/landcrusser-prado-tx-fully-loaded-with-sunroof-5304293
8
+254708467397 https://www.pigiame.co.ke/listings/mistubishi-canter-2016-model-3tones-5304291
9
+254708467397 https://www.pigiame.co.ke/listings/hillux-revolution-2016-model-fully-loaded-5304288
10
+254708467397 https://www.pigiame.co.ke/listings/toyota-prado-2016-model-fully-loaded-with-sunroof-5304285
11
+254708467397 https://www.pigiame.co.ke/listings/toyota-prado-txl-diesel-fuel-2017-model-5304283
12
+254769333436 https://www.pigiame.co.ke/listings/toyota-fielder2015kdkbelow-50000km-5304279
13
+254708467397 https://www.pigiame.co.ke/listings/subaru-forester-sti-turbo-2016-model-5304280
14
+254769333436 https://www.pigiame.co.ke/listings/honda-fit2015kdkbelow-60000km-5304276
15
+254769333436 https://www.pigiame.co.ke/listings/honda-vezel2015kdklow-milleage-5304273
16