2017-06-15 126 views
1

我得到了csv文件与众多的网址。为了方便起见,我将它读入了一个熊猫数据框。以后我需要做一些统计工作 - 熊猫只是方便的。它看起来有点像这样:用python 3抓取多​​个网页?

import pandas as pd 
csv = [{"URLs" : "www.mercedes-benz.de", "electric" : 1}, {"URLs" : "www.audi.de", "electric" : 0}] 
df = pd.DataFrame(csv) 

我的任务是检查网站中包含特定字符串,如果是用1添加一个额外的列,和别的0。例如:我想检查,其中包含字符串car

import requests 
page_content = requests.get("www.mercedes-benz.de") 
if "car" in page_content.text: 
    print ('1') 
else: 
    print ('0') 

我如何通过pd.URLs迭代/循环和存储在数据框大熊猫的信息?

回答

2

我觉得你DataFrame.iterrows需要通过数据环路,然后用loc创造新的价值:

for i, row in df.iterrows(): 
    page_content = requests.get(row['URLs']) 
    if "car" in page_content.text: 
     df.loc[i, 'car'] = '1' 
    else: 
     df.loc[i, 'car'] = '0' 

print (df) 
          URLs electric car 
0 http://www.mercedes-benz.de   1 1 
1   http://www.audi.de   0 1 
+0

一个跟进:如果get请求失败 - 例如当URL丢失或错误时,是否可以保持循环运行? @jezrael – Rachel

+0

对我来说很困难,但在python中注意了一些无声的错误处理。我从不使用它,所以我不能给你一些好的建议。抱歉。如果仍然存在问题,也许尝试其他问题 – jezrael