Я боролся с этим два дня.Существует определенный класс с именем «unCheck», который я не хочу импортировать в CSV.Я пробовал цикл IF и почти все, что приходило мне в голову, но я знаю, что я что-то пропускаю.
Кроме того, скрипт создает файл, но я не распределяю все в правильном формате, например, заголовки под заголовками, описание под описанием и т. Д. Я знаю кое-что, но не могу найти его: /
Забыл упомянуть, что это ссылка, которую я пытаюсь очистить (используя csv для всех ссылок на настоящем сайте) https://www.interhome.com/spain/barcelona/barcelona/apartment-placa-catalunya-rdauniversidad-es9510.90.1/?q=apartment%2bpla%25c3%25a7a%2bcatalunya%252frda.universidad%2b%25e2%2598%2585%25e2%2598%2585%25e2%2598%2585%25e2%2598%2585%252c%2bbarcelona
При прокрутке
можно увидеть объекты вниз
import requests
import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup
contents = []
with open('accomodation.csv', 'r') as csvf:
urls = csv.reader(csvf)
for url in urls:
contents.append(url)
for url in contents:
page = urlopen(url[0]).read()
soup = BeautifulSoup(page, 'html.parser')
accomodation = soup.findAll('div', {'class' : 'modAccommodationDetail'})
file_path = 'scraping.csv'
with open(file_path, "a") as csvf:
accomodation = soup.findAll('div', {'class' : 'modAccommodationDetail'})
for acom in accomodation:
title = acom.findAll('h1' , {'class' : 'base'})[0].text
print(title)
rooms = acom.findAll('div', {'class' : 'personsRooms'})[0].text
description = soup.findAll('div', {'class' : 'richtext'})
paragraph1 = acom.findAll('div', {'class' : 'richtext'})[0].text
print(paragraph1)
facilities1 = acom.findAll('div', {'class' : 'attr c_third'})[0].text
for unchecked in acom.find('ul', {'class' : 'attributelist'}): #im trying to make an IF loop to find it and after that skip just the one with that atribute "unCheck"
if unchecked.find('li', {'class' : 'unCheck'}:
continue
else:
print(facilities1)
facilities2 = acom.findAll('div', {'class' : 'attr c_third'})[1].text
print(facilities2)
distances = acom.findAll('div', {'class' : 'attr c_third'})[2].text
print(distances)
gallery = acom.find('ul', {'class' : 'object-thumb-list'}).findAll('a')
for link in gallery:
print(link['href'])
print('\n')
page_line = '{title}\n{rooms}\n{description}\n{facilities1}\n{facilities2}\n{distances}\n{gallery}\n\n'.format(
title = title,
rooms = rooms,
description = description,
facilities1 = facilities1,
facilities2 = facilities2,
distances = distances,
gallery = link['href']
)
csvf.write(page_line)