2017-06-28 9 views
0

正しく書式設定されたデータの代わりに、生データをPythonに送信することで、Webスクラップ処理のスピードアップを図っています。すべて置き換えホワイトスペースをハイフンに置き換えてURLを作成します。

  • :データにマクロを経由して、Excelでフォーマットされ

    SA 5000

    26例RD EXAMPLEVILLE:

    現在のデータは、エクセルのようにフォーマットされたデータをファイルとして受信されますハイフンを含むスペース

  • すべてのテキストを小文字に変更します。
  • テキストを貼り付けますhttp://example.com/property/

の終わりにフォーマットされたデータは、私が達成しようとしている何http://www.example.com/property/26-example-rd-exampleville-sa-5000

です:

PythonはExcelシートに移動して、上記の書式設定ルールに従って、その後にレコードを渡すために取得しますスクレーパー

ここに私がコンパイルしようとしているコードがあります。簡単に行ってください。私は非常に新しいです。

pythonの書式設定に関連するアドバイスや読書のソースがあれば幸いです。あなただけのPythonでの書式設定を行う方法を把握しようとしている場合

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import requests 
import csv 
from lxml import html 
import xlrd 

# URL_BUILDER 
# Source File for UNFORMATTED DATA 

file_location = "C:\Python27\Projects\REA_SCRAPER\NewScraper\ScrapeFile.xlsx" 
workbook = xlrd.open_workbook(file_location) 
sheet = workbook.sheet_by_name('((PythonScraperDNC))') 

# REA_SCRAPER 
# Pass Data from URL_BUILDER to URL_LIST [] 

URL_LIST = [] 

# Search Phrase to capture suitable URL's for Scraping 

text2search = \ 
'''<p class="property-value__title"> 
RECENTLY SOLD 
</p>''' 

# Write Sales .CSV file 

with open('Results.csv', 'wb') as csv_file: 
writer = csv.writer(csv_file) 
for (index, url) in enumerate(URL_LIST): 
page = requests.get(url) 
print '<Scanning Url For Sale>' 

if text2search in page.text: 
tree = html.fromstring(page.content) 
(title,) = (x.text_content() for x in tree.xpath('//title')) 
(price,) = (x.text_content() for x in tree.xpath('//div[@class="property-value__price"]')) 
(sold,) = (x.text_content().strip() for x intree.xpath('//p[@class="property-value__agent"]')) 

writer.writerow([title, price, sold]) 
else: 
writer.writerow(['No Sale']) 
+1

を、あなたは、二重引用符が欠落しています'file_location ='行の最後。まずそれを修正して、あなたが抱えている正確な問題を教えてください。 (「動作しません」などはカウントされません)。 – smarx

+1

最後にインデントエラーがあります。ここで共有するコードが、実行しているコードとまったく同じであることを確認してください。 – smarx

+0

@smarx書式設定のアドバイスありがとうございます - 私はSOを数回使っていますが、コードを投稿する最良の方法を学んでいます - 投稿する前に空白をすべて削除してからCRTL-Kを押すか、原子からインデントしてからCtrl + Kを押します。 – James2086

答えて

1

:あなたはおそらくここでシンタックスハイライトから見ることができるように

text = '26 EXAMPLE RD EXAMPLEVILLE SA 5000' 
url = 'http://example.com/property/' + text.replace(' ', '-').lower() 
print(url) 

# Output: 
# http://example.com/property/26-example-rd-exampleville-sa-5000 
+0

しかし、私はそれを釘付けにしましたが、それをExcelのリストから2000回以上実行して、フォーマットされたURLを私のスクレーパーに渡す必要があります。 – James2086

関連する問題