Úplný začátečník. Prosím, pomozte. Mám tento kód, který pracoval, když jsem se nesnažil, aby na výstupu .csv, ale místo toho měl příkaz pro tisk tam - takže jsem neměl poslední 2 řádky, nebo cokoliv vztahující se k proměnné 'data'. Tím, že "pracovali" myslím, že to vytisknout data ze všech 18 stránek.
Teď výstupy dat do .csv, ale jen z první stránky (url).
Vidím, že nejsem absolvování nexturl do pandy na konci - protože nevím, jak. Pomoc velmi ocenil.
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://www.marketresearch.com/search/results.asp?qtype=2&datepub=3&publisher=Technavio&categoryid=0&sortby=r'
def scrape_it(url):
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
nexturl = soup.find_all(class_="standardLinkDkBlue")[-1]['href']
stri = soup.find_all(class_="standardLinkDkBlue")[-1].string
reports = soup.find_all("tr", {"class": ["SearchTableRowAlt", "SearchTableRow"]})
data = []
for report in reports:
data.append({
'title': report.find('a', class_='linkTitle').text,
'price': report.find('div', class_='resultPrice').text,
'date_author': report.find('div', class_='textGrey').text.replace(' | published by: TechNavio', ''),
'detail_link': report.a['href']
})
if 'next' not in stri:
print("All pages completed")
else:
scrape_it(nexturl)
return data
myOutput = pd.DataFrame(scrape_it(url))
myOutput.to_csv(f'results-tec6.csv', header=False)