2017-05-24 17 views
0

うまく動作しているいくつかのショップ名に対して「住所」と「電話」を擦るコードを書いています。ただし、アクティビティを実行するためには2つのパラメータが設定されています。私は、 "名前"が最初の列にあり、 "蓋"が2番目の列にあり、収穫された結果がそれに応じて3番目と4番目の列に配置されるcsvファイルから同じものを実行することを期待していました。この時点で、私はどのようにCSVファイルから検索を実行できるかについては何の考えも得られません。どんな提案も大いに評価されます。 );(今の用事PEP違反)CSVファイルからリバースウェブ検索を実行できません

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"]) 

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) 

答えて

1

あなたは次のようにCSVからあなたNamesLidsリストを取得することができます。それであなたのコードの残りの部分で使うことができますが、for Name in Names and Lids:ループで何を達成しようとしているのかは分かりませんが、それはあなたの考えではありません。Namesのリストをループしません。 Lidsリスト

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... 
+0

おかげであなたの答えのために、zwer:

また、最適化の最初の順序は次のように、CSVをループを使ってループを交換する必要があります。私は今あなたのコードをテストし、それは魔法のように動作します。あなたは私を貪欲にしました。これに関する最後の質問。入力した結果を対応する列に書き込むにはどうすればよいですか。私はCSVで働いていましたが、それらはすべてプライマリレベルに属しています。ありがとうございました。 – SIM

+1

これに 'csv.writer()'を使うことができます。技術的には可能ですが、ファイルを読み込んだときに更新すると怪我をする可能性がありますので、最初の例を使用して「名前」と「リード」リストを読み込んで、CSVを書き直してください一時的なCSVファイルを作成し、更新されたコンテンツを書き込み、ループが終了したら元のファイルを上書きします。 CSVを読み書きする方法については、https://docs.python.org/3/library/csv.html – zwer

+0

にはたくさんの例があります。ありがとうございます。あなたは私の月の努力を救った。 Tc。 – SIM

関連する問題