Python 调试使用Beautifulsoup的web抓取脚本
我有一个csv文件,带有一些URL。当我尝试一个接一个地刮取url文本时,没有问题,但是当我运行一个函数尝试刮取所有url并将它们存储到数据框中时,我只得到了第一段 我需要纠正什么Python 调试使用Beautifulsoup的web抓取脚本,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我有一个csv文件,带有一些URL。当我尝试一个接一个地刮取url文本时,没有问题,但是当我运行一个函数尝试刮取所有url并将它们存储到数据框中时,我只得到了第一段 我需要纠正什么 def extract_text (row): try: url = row['url'] driver = webdriver.Firefox(executable_path='geckodriver.exe')
def extract_text (row):
try:
url = row['url']
driver = webdriver.Firefox(executable_path='geckodriver.exe')
driver.implicitly_wait(30)
driver.get(url)
time.sleep(3)
page = driver.page_source
driver.quit()
soup = bs.BeautifulSoup(page,'lxml')
body = soup.find('div',class_ = 'content-canvas Bgc(#fff) Pos(r)')
list_of_paragraphs = body.find_all('p')
for paragraph in list_of_paragraphs:
return(paragraph.text)
except:
next
temp['text']=temp.apply(extract_text, axis=1)
news = temp['text']
尝试:
您在for循环的第一次迭代中立即返回函数,这就是为什么您只得到第一段。因为return会停止函数,所以它会在for循环的第一次迭代中停止。请修复缩进。您进行过任何调试吗?请提供一份报告。
results = []
for paragraph in list_of_paragraphs:
results.append(paragraph.text)
return results