【问题标题】:Web scraping multiple pages with python 3?使用 python 3 抓取多个页面?
【发布时间】:2017-11-17 21:20:24
【问题描述】:

我得到了包含许多 URL 的 csv 文件。为方便起见,我将其读入熊猫数据框。稍后我需要做一些统计工作——pandas 很方便。它看起来有点像这样:

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

我的任务是检查网站是否包含某些字符串,如果是,则添加带有1 的额外列,否则添加0。例如:我要检查,www.mercedes-benz.de 是否包含字符串car

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

如何遍历/循环 pd.URLs 并将信息存储在 pandas 数据框中?

【问题讨论】:

    标签: python-3.x pandas dataframe web-scraping iteration


    【解决方案1】:

    我认为您需要按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
    

    【讨论】:

    • 跟进:如果获取请求失败 - 例如当 URL 丢失或错误时,是否可以保持循环运行? @jezrael
    • 对我来说是个难题,但在 python 中进行了一些静默错误处理。我从不使用它,所以我不能给你一些好的建议。对不起。如果仍然有问题,请尝试另一个问题。
    猜你喜欢
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多