Web scraping BeatifulSoup-如何获取此网站的分页
我在尝试检索此链接上的分页时遇到问题: 这是“下一页”代码:Web scraping BeatifulSoup-如何获取此网站的分页,web-scraping,beautifulsoup,Web Scraping,Beautifulsoup,我在尝试检索此链接上的分页时遇到问题: 这是“下一页”代码: 您可以获得url\u tag=soup。查找('li',{id:“next page link”})并检查url\u tag是否为无。如果是,则中断 例如: from bs4 import BeautifulSoup import requests import pandas as pd url = "https://timetochoose.co.ao/?ct_keyword&ct_ct_status&
您可以获得url\u tag=soup。查找('li',{id:“next page link”})
并检查url\u tag
是否为无。如果是,则中断
例如:
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = "https://timetochoose.co.ao/?ct_keyword&ct_ct_status&ct_property_type&ct_beds&search-listings=true&ct_country=portugal&ct_price_to&ct_mls&lat&lng"
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0'}
anuncios_ttc = {}
anuncios_nr = 0
while True:
soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')
anuncios = soup.find_all("div", {"class": "grid-listing-info"})
for anuncios in anuncios:
titles = anuncios.find("a",{"class": "listing-link"}).text
location = anuncios.find("p",{"class": "location muted marB0"}).text
link = anuncios.find("a",{"class": "listing-link"}).get("href")
anuncios_response = requests.get(link, headers=headers)
anuncios_data = anuncios_response.text
anuncios_soup = BeautifulSoup(anuncios_data, 'html.parser')
conteudo = anuncios_soup.find("div", {"id":"listing-content"}).text
preco = anuncios_soup.find("span",{"class": "listing-price"})
preco_imo = preco.text if preco else "N/A"
quartos = anuncios_soup.find("li", {"class": "row beds"})
nr_quartos = quartos.text if quartos else "N/A"
wcs = anuncios_soup.find("li", {"class": "row baths"})
nr_wcs = wcs.text if wcs else "N/A"
tipo = anuncios_soup.find("li", {"class": "row property-type"})
tipo_imo = tipo.text if tipo else "N/A"
bairro = anuncios_soup.find("li", {"class": "row community"})
bairro1 = bairro.text if bairro else "N/A"
ref = anuncios_soup.find("li", {"class": "row propid"}).text
anuncios_nr+=1
anuncios_ttc[anuncios_nr] = [titles, location, bairro1, preco_imo, tipo_imo, nr_quartos, nr_wcs, conteudo, ref, link]
print("Título", titles, "\nLocalização", location, "\nPreço", preco_imo, "\nLink", link, "\nReferencia", ref, "\nTipo", tipo_imo, "\nQuartos", nr_quartos, "\nWC", nr_wcs, "\nBairro", bairro1, "\nConteudo", conteudo)
url_tag = soup.find('li', {"id": "next-page-link"})
if not url_tag:
break
url = url_tag.find('a')['href']
print("Nr Total de Anuncios: ", anuncios_nr)
anuncios_ttc_df = pd.DataFrame.from_dict(anuncios_ttc, orient = 'index', columns =['Titulo', 'Localização', 'Bairro', 'Preço', 'Tipo', 'Quartos', 'WCs', 'Descrição', 'Referência', 'Ligação'])
print(anuncios_ttc_df)
anuncios_ttc_df.to_csv('ttc_python.csv')
印刷品:
...
Nr Total de Anuncios: 27
Titulo Localização ... Referência Ligação
1 Vivenda V4 – Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-CAS_513 https://timetochoose.co.ao/listings/vivenda-v4...
2 Apartamento T2 – Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-2432019MR https://timetochoose.co.ao/listings/apartament...
3 Vivenda V4 – Vila Real Sto António Vila Real Sto António, Algarve , Portugal ... Código do imóvelTTC-PT-2402018HM https://timetochoose.co.ao/listings/vivenda-v4...
4 Apartamento T2 – Vila Real Sto António Vila Real Sto António, Algarve , Portugal ... Código do imóvelTTC-PT-2392019HM https://timetochoose.co.ao/listings/apartament...
5 Vivenda V3 – Vila Real Sto António, Portugal Vila Real Sto António, Algarve , Portugal ... Código do imóvelTTC-PT-2382019SF https://timetochoose.co.ao/listings/vivenda-v3...
6 Apartamento T2 – Vila Real Sto António, Portugal Vila Real Sto António, Algarve , Portugal ... Código do imóvelTTC-PT-2222019HM https://timetochoose.co.ao/listings/apartament...
7 Vivenda V6 – Castro Marim Castro Marim, Algarve , Portugal ... Código do imóvelTTC-PT-2232019HM https://timetochoose.co.ao/listings/vivenda-v6...
8 Apartamento T0 – Cabanas De Tavira Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-2162019SF https://timetochoose.co.ao/listings/apartament...
9 Vivenda V5 – Castro Marim, Portugal Castro Marim, Algarve , Portugal ... Código do imóvelTTC-PT-2132018OR https://timetochoose.co.ao/listings/vivenda-v5...
10 Vivenda V2 – Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-2122018SF-PA https://timetochoose.co.ao/listings/vivenda-v2...
11 Vivenda V3 – Castro Marim, Portugal Castro Marim, Algarve , Portugal ... Código do imóvelTTC-PT-2092018-HM-C https://timetochoose.co.ao/listings/vivenda-v3...
12 Apartamento T3 – Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-1982018AB https://timetochoose.co.ao/listings/apartament...
13 Vivenda Com 3 Pisos – Cabanas De Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-1912018PG https://timetochoose.co.ao/listings/v3-cabanas...
14 Vivenda V2 - Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-1842018PG https://timetochoose.co.ao/listings/vivenda-v2...
15 Vivenda V5 Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-0042017MR https://timetochoose.co.ao/listings/vivenda-v5...
16 Apartamento T2 Cabanas De Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-271SF https://timetochoose.co.ao/listings/apartament...
17 Quinta Em Martinlongo, Portugal Martinlongo, Algarve , Portugal ... Código do imóvelTTC-PT-270OR https://timetochoose.co.ao/listings/quinta-em-...
18 Apartamento T3 Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-269ABMR https://timetochoose.co.ao/listings/apartament...
19 Apartamento T2+1 Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-268PG https://timetochoose.co.ao/listings/apartament...
20 Apartamento T4 Duplex, Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-267AB https://timetochoose.co.ao/listings/apartament...
21 Apartamento T3 – Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-264PG https://timetochoose.co.ao/listings/apartament...
22 Vivenda V4 Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-264CL https://timetochoose.co.ao/listings/moradia-v4...
23 Vivenda Com 3 Andares, Oliveira Do Douro, Port... Vila Nova de Gaia, Douro Litoral , Portugal ... Código do imóvelTTC-PT-0549 https://timetochoose.co.ao/listings/vivenda-co...
24 Apartamento T2, Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-263JM https://timetochoose.co.ao/listings/apartament...
25 Vivenda V3 – Tavira, Portugal Tavira, Algarve , Portugal ... Código do imóvelTTC-PT-254AB https://timetochoose.co.ao/listings/moradia-v3...
26 Edifício De Turismo Rural - Serra Da Estrela Serra da Estrela, Beira Baixa , Portugal ... Código do imóvelTTC-EDF-0219-PT https://timetochoose.co.ao/listings/edificio-d...
27 Vivenda V4+1 -malveira Da Serra Sintra, Estremadura , Portugal ... Código do imóvelTTC-V4+1-0210-PT https://timetochoose.co.ao/listings/vivenda-v4...
[27 rows x 10 columns]
并保存ttc_python.csv
(来自LibreOffice的屏幕截图):
谢谢!它现在工作得很好。我需要不断学习,尤其是如何处理错误。