Web scraping 为什么这段代码能够正确地进行刮边,但却不能';是否保存任何csv或excel文件?

Web scraping 为什么这段代码能够正确地进行刮边,但却不能';是否保存任何csv或excel文件?,web-scraping,beautifulsoup,saving-data,Web Scraping,Beautifulsoup,Saving Data,我从《算法交易的机器学习》一书中获取了这段代码。这是一个用来吓唬上市公司seaking alpha.com的代码。 我看到代码正确地执行了抓取,但是我看不到保存的带有抓取结果的文件。 我认为路径可能是错误的,但我不确定。我正在使用MacBookPro和Spider。 非常感谢。 阿莱西奥 __作者:Stefan Jansen 进口稀土 从pathlib导入路径 从随机导入随机 从时间上导入睡眠 从urllib.parse导入urljoin 作为pd进口熊猫 从bs4导入BeautifulSou

我从《算法交易的机器学习》一书中获取了这段代码。这是一个用来吓唬上市公司seaking alpha.com的代码。 我看到代码正确地执行了抓取,但是我看不到保存的带有抓取结果的文件。 我认为路径可能是错误的,但我不确定。我正在使用MacBookPro和Spider。 非常感谢。 阿莱西奥


__作者:Stefan Jansen
进口稀土
从pathlib导入路径
从随机导入随机
从时间上导入睡眠
从urllib.parse导入urljoin
作为pd进口熊猫
从bs4导入BeautifulSoup
从毛皮进口
从selenium导入webdriver
转录本路径=路径(“转录本”)
def存储结果(元、参与者、内容):
“”“将分析内容保存到csv”“”
path=TRANSACT_path/'parsed'/meta['symbol']
如果不是路径。存在():
mkdir(parents=True,exist\u ok=True)
pd.DataFrame(内容,列=['speaker','q&a','content'])。to_csv('content.csv',index=False)
pd.DataFrame(参与者,列=['type','name'])。到_csv('particients.csv',index=False)
pd.Series(meta.to_csv('earnings.csv'))
def解析_html(html):
“”“主html解析器函数”“”
date_pattern=re.compile(r'(\d{2})-(d{2})-(d{2})-(d{2}))
四分之一模式=重新编译(r'(\bQ\d\b))
soup=BeautifulSoup(html,'html.parser')
元,参与者,内容={},[],[]
h1=soup.find('h1',itemprop='headline')
如果h1为无:
返回
h1=h1.text
meta['company']=h1[:h1.find('(')].strip()
meta['symbol']=h1[h1.find('(')+1:h1.find(')]
title=soup.find('div',class='title')
如果标题为“无”:
返回
title=title.text
印刷品(标题)
匹配=日期\模式。搜索(标题)
如果匹配:
m、 d,y=match.groups()
元['month']=int(m)
元['day']=int(d)
元['year']=int(y)
匹配=四分之一模式。搜索(标题)
如果匹配:
meta['quarter']=匹配组(0)
qa=0
演讲者类型=[“高管”、“分析师”]
对于[p.parent for p in soup.find_all('strong')]中的标题:
text=header.text.strip()
如果text.lower().startswith('copyright'):
持续
elif text.lower().startswith('question-and'):
qa=1
持续
elif any([键入扬声器类型的文本]:
对于标题中的参与者。查找下一个兄弟姐妹('p'):
如果参与者.find('strong'):
打破
其他:
append([text,participant.text])
其他:
p=[]
对于标题中的参与者。查找下一个兄弟姐妹('p'):
如果参与者.find('strong'):
打破
其他:
p、 追加(participant.text)
content.append([header.text,qa,'\n'.join(p)])
返回元、参与者、内容
萨乌https://seekingalpha.com/'
转录本=重新编译('收益调用转录本')
下一页=真
页码=1
driver=webdriver.Firefox(可执行文件路径='/Users/alesiomontani/Documents/0_Python/CODE/Machine Learning for Algorithmic Trading第二版master/03_alternative_data/02_earning_calls copy/geckodriver')
而下一页:
打印(f'页:{Page}')
url=f'{SA_url}/earnings/earnings call transcripts/{page}'
get(urljoin(sau URL,URL))
睡眠(8+(随机()-.5)*2)
响应=driver.page\u源
页码+=1
soup=BeautifulSoup(响应“html.parser”)
links=soup.find_all(name='a',string=TRANSCRIPT)
如果len(links)==0:
下一页=错误
其他:
对于链接中的链接:
转录本url=link.attrs.get('href')
article_url=furl(urljoin(SA_url,transcript_url))。添加({'part':'single'})
获取(article_url.url)
html=driver.page\u源
结果=解析html(html)
如果结果不是无:
元,参与者,内容=结果
meta['link']=链接
存储结果(元、参与者、内容)
睡眠(8+(随机()-.5)*2)
驱动程序关闭()
#pd.Series(articles.to_csv('articles.csv'))

>我看不到保存的文件中有刮削结果。这是因为将结果保存到csv的行被注释掉了。但是我也不能从代码中说出
文章中应该包含什么内容,谢谢你的回复。如果我尝试将“'''pd.Series(articles.)”放到\u csv('articles.csv'))''我收到错误代码'Undefined name articles',该代码没有从网站保存任何csv文件。我如何解决此问题?是的,这就是问题所在。由于文章未定义,您无法将其保存到csv。您应该通过调用store result function来保存数据。谢谢,我该如何做?我如何调用store result function?>我看不到保存的文件和刮片结果。这是因为将结果保存到csv的行被注释掉了。但我也不能从代码中说出
articles
Hi,感谢您的回复。如果我尝试将“''pd.Series(articles.)”放在\u csv('articles.csv')中''我收到错误代码'Undefined name articles',该代码没有从网站保存任何csv文件。我如何解决此问题?是的,这就是问题所在。由于文章未定义,您无法将其保存到csv。您应该通过调用store result function来保存数据。谢谢,我该如何做?我如何调用store result function?