2017-05-14 6 views
1

私は価格、数量などのデータを抽出するためのコードをスクラップする価格ウェブに取り組んでいます。私はBeautifulSoupでコードを使用して、ターゲットとするウェブサイトのHTMLタグからテキストを抽出しました。 しかし、それはテキストの束と一緒に戻ってきたので、それらをcsvファイルに印刷する前に分割または分割する方法がわかりません。pythonでウェブサイトから価値を引き出す方法は?

from urllib import urlopen as uReq 
 
from bs4 import BeautifulSoup as soup 
 

 
my_url = 'https://www.digikey.com/products/en?keywords=568-3651-5-ND' 
 
uClient = uReq(my_url) 
 
page_html = uClient.read() 
 
uClient.close() 
 
page_soup = soup(page_html, "html.parser") 
 
containers = page_soup.body.script 
 
filename = "products.txt" 
 
f = open(filename, "w") 
 
headers = "data" 
 
f.write(headers) 
 
data = containers.text 
 
f.write(data + "\n") 
 
f.close()

、それはで返さ:私は検索と正規表現を試みたが、私は量(part_availableと期待通りの結果がありませんでした

var utag_data = { 
 
      page_site: 'US', 
 
      page_language: 'en', 
 
      wt_use_udo: 'True', 
 
      page_content_group: 'Part Search', 
 
      page_content_sub_group: 'Part Detail', 
 
      page_title: 'Part Detail', 
 
      page_type: 'PS', 
 
      page_sub_type: 'PD', 
 
      page_id: 'PD', 
 
      **pn_sku: '1740-1017-ND',** 
 
      part_id: '1154763', 
 
      **part_available: '4324',** 
 
      transaction_type: 'v', 
 
      transaction_quantity: '1', 
 
      supplier_id: '1740' 
 
       , part_search_filter: 'No Filter' 
 
       , **part_search_term: '568-3651-5-ND'** 
 
       , part_search_term_ext: '568-3651-5-ND' 
 
        , part_search_results_count: 1 
 
      , video_source: 'Part Detail' 
 
     }

' 4324 ')とsku_num(pn_sku:' 1740-1017-ND ')があります。私はPythonとコーディングに新しいです、コメントを残してください。

+0

あなたがこれまでにしようとしているものをご提示ください。 –

答えて

0

正規表現を使用するのではなく、jsonを使用することをお勧めします。しかし、与えられたスクリプトは厳密にフォーマットされたjsonではありません。代わりにyaml parserを使用できます。

import yaml 
data = yaml.load(containers.text.replace('var utag_data =', '', 1)) 
with open('products.csv', 'w') as f: 
    f.write('part,sku\n') 
    f.write('{},{}\n'.format(data['part_available'], data['pn_sku'])) 

結果のCSVファイルの内容:

part,sku 
4324,1740-1017-ND 
+0

ありがとう、それは正常に動作し、正確にデータを印刷 –

関連する問題