###前提・実現したいこと
以下のサイトにJANコードの値を入力して、検索結果のASINコードをスクレイピングして表示することを実行しようとしています。
検索窓に入力するWebサイト
###発生している問題・エラーメッセージ
以下のコードを実行するとこのようなエラーが表示されており、修正のためのアドバイスをいただけますと幸いです。
$ python trial.py --jan 4901351055618 File "trial1.py", line 48 desc = e.get_attribute('textContent') ^ IndentationError: expected an indented block
上記エラーの後、再度インデントを確認設定したところ、
以下のエラーに変わりました。やはり近い部分で問題が起こっているようです
$ python trial.py --jan 4901351055618 File "trial1.py", line 47 for e in elems: ^ IndentationError: unindent does not match any outer indentation level
###該当のソースコード
Python
1#trial.py 2#!/usr/bin/env python 3# -*- coding: utf-8 -*- 4from selenium import webdriver 5from selenium.common.exceptions import NoSuchElementException 6from selenium.webdriver.common.keys import Keys 7from sys import exit 8from time import sleep 9from urllib import urlretrieve 10import argparse 11import datetime 12import requests 13import os 14import urllib2 15#import sqlite3 16import codecs, sys 17 18sys.stdout = codecs.getwriter('utf_8')(sys.stdout) 19sys.stdin = codecs.getreader('utf_8')(sys.stdin) 20 21DELAY_SLEEP = 1 22JANJAN_URL = "https://antlion.xsrv.jp/" 23 24#database name 25#dbname = 'master_data.sqlite3' 26#connect to the database 27#con = sqlite3.connect(dbname) 28#c = con.cursor() 29 30def main(): 31 parser = argparse.ArgumentParser(description='Get asin from JANJAN_URL') 32 parser.add_argument('--jan', nargs='+') 33 args = parser.parse_args() 34 35 products = {} 36 for k,v in produts.iteritems(): 37 driver = webdriver.PhantomJS() 38 try: 39 #get asin 40 driver.get(JANJAN_URL) 41 driver.set_window_size(1920, 1080) 42 driver.implicitly_wait(DELAY_SLEEP) 43 elem = driver.find_element_by_xpath('//*[@id="content"]/div[1]/div/form/input[2]') 44 elem.send_keys(a) 45 elem = driver.find_element_by_xpath('//*[@id="content"]/div[1]/div/form/input[3]') 46 elem.click() 47 elems = driver.find_elements_by_xpath('//*[@id="content"]/div[2]/div[5]/ul/li') 48 for e in elems: 49 desc = e.get_attribute('textContent') 50 if desc.startswith("ASIN"): 51 v['asin'] = desc 52 53 except Exception as e: 54 print e 55 driver.close() 56 exit(1) 57 58 driver.close() 59 60 for v in products.values(): 61 print v['asin'] 62 63if __name__ == "__main__": 64 main()
###補足情報(言語/FW/ツール等のバージョンなど)
Python 2.7.12
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/09 02:53
2018/01/09 03:52
退会済みユーザー
2018/01/09 04:47