Saya cuba mengikis tapak web menggunakan BeautifulSoup dalam Python. Semua data diserap, termasuk semua pautan yang saya cuba akses. Walau bagaimanapun, apabila saya menggunakan fungsi .findAll(), ia hanya mengembalikan sebahagian daripada pautan yang saya cari. Dalam erti kata lain, hanya pautan dalam xpath berikut dikembalikan
/html/body/div[1]/div/div[2]/div/div[2]/div[1]
Ini akan mengabaikan pautan masuk /html/body/div[1]/div/div[2]/div/div[2]/div[2] /html/body/div[1]/div/div[2]/div/div[2]/div[3] Tunggu
import requests from bs4 import BeautifulSoup url = "https://www.riksdagen.se/sv/ledamoter-och-partier/ledamoterna/" response = requests.get(url) content = BeautifulSoup(response.content, "html.parser") mp_pages = [] mps = content.findAll(attrs = {'class': 'sc-907102a3-0 sc-e6d2fd61-0 gOAsvA jBTDjv'}) for x in mps: mp_pages.append(x.get('href')) print(mp_pages)
Saya mahu semua pautan dilampirkan pada senarai mp_pages, tetapi ia hanya pergi ke satu ibu bapa (pautan bermula dengan A) dan nampaknya berhenti pada anak terakhir dan bukannya meneruskan.
Saya telah melihat soalan yang serupa di mana jawapannya adalah menggunakan selenium kerana javascript, tetapi kerana semua pautan berada dalam kandungan, ia tidak masuk akal.
Data yang anda lihat pada halaman disimpan sebagai Json dalam
elemen. Untuk menghuraikannya anda boleh menggunakan contoh seterusnya:
Cetakan: