首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从csv文件执行反向web搜索

无法从csv文件执行反向web搜索
EN

Stack Overflow用户
提问于 2017-05-24 20:24:03
回答 1查看 36关注 0票数 0

我写了一些代码,把“地址”和“电话”与一些工作正常的商店名称擦掉。然而,它有两个参数需要填充来执行它的活动。我希望在csv文件中也这样做,其中"Name“将位于第一列,"Lid”将出现在第二列中,所获得的结果将相应地放置在第三和第四列中。此时,我不知道如何从csv文件执行搜索。任何建议都会受到极大的赞赏。

代码语言:javascript
运行
复制
import requests
from lxml import html

Names=["Literati Cafe","Standard Insurance Co","Suehiro Cafe"]
Lids=["3221083","497670909","12183177"]
for Name in Names and Lids:
    Page_link="https://www.yellowpages.com/los-angeles-ca/mip/"+Name.replace(" ","-")+"-"+Name
    response = requests.get(Page_link)
    tree = html.fromstring(response.text)
    titles = tree.xpath('//article[contains(@class,"business-card")]')
    for title in titles:
        Address= title.xpath('.//p[@class="address"]/span/text()')[0]
        Contact = title.xpath('.//p[@class="phone"]/text()')[0]
        print(Address,Contact)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-24 22:34:59

您可以从CSV获得NamesLids列表,如下所示:

代码语言:javascript
运行
复制
import csv

Names, Lids = [], []
with open("file_name.csv", "r") as f:
    reader = csv.DictReader(f)
    for line in reader:
        Names.append(line["Name"])
        Lids.append(line["Lid"])

(目前没有违反PEP的规定;)。然后,您可以在剩下的代码中使用它,尽管我不确定您试图用for Name in Names and Lids:循环实现什么,但它并没有给出您认为的结果-它不会循环通过Names列表,而是只通过Lids列表。

优化的第一步应该是用CSV上的循环替换您的循环,如下所示:

代码语言:javascript
运行
复制
with open("file_name.csv", "r") as f:
    reader = csv.DictReader(f)
    for entry in reader:
        page_link = "https://www.yellowpages.com/los-angeles-ca/mip/{}-{}".format(entry["Name"].replace(" ","-"), entry["Lid"])
        # rest of your scraping code...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44167840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档