【发布时间】:2022-01-02 09:50:33
【问题描述】:
完全的初学者。请帮忙。我有这段代码,当我没有尝试输出到 .csv 而是在那里有一个打印命令时它起作用了——所以我没有最后两行或任何与变量“数据”相关的东西。 “工作”是指它打印了所有 18 页的数据。
现在它将数据输出到 .csv 但仅从第一页 (url)。
我看到最后我没有将 nexturl 传递给 pandas - 因为我不知道该怎么做。非常感谢您的帮助。
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)
【问题讨论】:
标签: python web-scraping beautifulsoup export-to-csv