Python 3.x web抓取,从csv列表中传递搜索值并返回csv

Python 3.x web抓取,从csv列表中传递搜索值并返回csv,python-3.x,pandas,Python 3.x,Pandas,如何将名称列表放入for循环并搜索其许可证id和到期日期 我想从网站上删除此网站的http://mbsweblist.fsco.gov.on.ca/agents.aspx'. 我有一份特工名单。使用姓氏搜索时,它返回许可证id,这是一个超链接,单击该超链接可将您带到另一个页面,其中包含许可证信息,如到期日期 我的输入是一个.csv文件中的代理名称列表,输出应该是带有代理名称、许可证号和到期日期的.csv或excel文件。我不喜欢使用硒。如果有办法,请告诉我?。下面的代码一次搜索并返回一个代理的输

如何将名称列表放入for循环并搜索其许可证id和到期日期

我想从网站上删除此网站的http://mbsweblist.fsco.gov.on.ca/agents.aspx'. 我有一份特工名单。使用姓氏搜索时,它返回许可证id,这是一个超链接,单击该超链接可将您带到另一个页面,其中包含许可证信息,如到期日期

我的输入是一个.csv文件中的代理名称列表,输出应该是带有代理名称、许可证号和到期日期的.csv或excel文件。我不喜欢使用硒。如果有办法,请告诉我?。下面的代码一次搜索并返回一个代理的输出。多谢各位

列表图像:


您只需要循环使用
input.csv
,在本例中,我将其定义为
names

import pandas as pd
names = pd.DataFrame({"First Name":["Grant", "Orlando",
                                    "Adam", "Levan"],
                      "Last Name": ["Morris", "Fantini",
                                    "Crossley", "Sichinava"]})

out = []
for _, name in names.iterrows():
    page = get_result_page_ontario(name["Last Name"])
    licenses = parse_result_page_ontario(page)
    for l in licenses:
        out.append([name["First Name"],
                    name["Last Name"],
                    l, parse_license_page_ontario(l)])

out = pd.DataFrame(out, columns=["First Name",
                                 "Last Name",
                                 "License",
                                 "Expires"])

out.to_csv("output.csv", index=False)

超级,它生成了一个.csv文件,并浏览了名单。但它正在抓捕所有姓“莫里斯”或“克罗斯利”的特工。如何给出一个DISTINCE子句,以便代码只获取代理名称“Grant Morris”的详细信息?。对不起,对不起,我不是开发人员。您可能需要修改
parse\u result\u page\u ontology
,以检查是否包含名字。
import pandas as pd
names = pd.DataFrame({"First Name":["Grant", "Orlando",
                                    "Adam", "Levan"],
                      "Last Name": ["Morris", "Fantini",
                                    "Crossley", "Sichinava"]})

out = []
for _, name in names.iterrows():
    page = get_result_page_ontario(name["Last Name"])
    licenses = parse_result_page_ontario(page)
    for l in licenses:
        out.append([name["First Name"],
                    name["Last Name"],
                    l, parse_license_page_ontario(l)])

out = pd.DataFrame(out, columns=["First Name",
                                 "Last Name",
                                 "License",
                                 "Expires"])

out.to_csv("output.csv", index=False)