Aktywne Wpisy
njdnsjdnjs +1
Czy myslisz ze jakby wykopki zobaczyly jak wygladasz to by sie zdziwili czy nie
tak czy nie
- zdziwili 47.9% (56)
- nie 52.1% (61)
noipmezc +2
lejsy zielona cebulka czy paprykowe
- paprykowe 43.2% (83)
- cebulka 39.6% (76)
- inne/nie jem czipsuw 17.2% (33)
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Siema Mirki , próbuję scrapować stronę z listą artykułów o takiej strukturze:
https://pastebin.com/NvG2UAYd
Chciałem wyciągnąć:
title -> "search-item-heading"
readtime -> "article-read-time"
publishdate -> "article-publish-date"
i articleurl
używam bs4 z features='lxml'
Listę artykułów pobieram :
https://pastebin.com/GPLFU0gZ
kod
allarticles = aticleslists.findall('li', {'class': 'search-page_grid-item search-pagegrid-item--article'})Jak poprawnie pobrać itemy ?
for article in all_articles:
article_title = article.select_one("span[data-testid]").text
article_urls = article.findAll('a', {"class": 'search-page__tile-link'})
article_read_date = article.find('p', {"class": "article-attributes"}).contents[0].text
article_publish_date = article.find('p', {"class": "article-attributes"}).contents[1].text
Bo moje iterowanie lekko mówią jest do dupy - articletitle , posiada w sobie '\n' i spacje
article_read i publish date w klasie article-attributes są dwa spany, próbowałem tutaj findallem wyciągać i potem iterować ale też nie wyświetla mi poprawnych danych.
Jak żyć i czy od razu usuwać konto ?
@mangel123:
all_articles = article_list.find_all('li', {'class': 'search-page__grid-item search-page__grid-item--article'})
def clear(data: str):
return re.sub("\s+", " ", data.replace("\n", ""))
for article in all_articles:
article_title = clear(article.select_one("span[data-testid]").text.strip())
article_urls = article.findAll('a', {"class": 'search-page__tile-link'})
article_read_date = clear(article.select_one(".article-read-time").text.strip())
article_publish_date = clear(article.select_one(".article-publish-date").text.strip())
print(article_title)
print(article_urls)
print(article_read_date)
print(article_publish_date)
To że newline się nie wyświetla w HTMLu to zazwyczaj tylko i wyłącznie zasługa CSSa. Odpowiednie czyszczenie i da się pracować.