def t_01(self, device="mumu"): dr = Driver(device="huaweip20", system="邮箱大师").driver loger = log("baidutest") home1 = home.Home(dr, loger) sleep(5) home1.swipe() sleep(5) dr.quit()
def test(self): dr = Driver(device="huaweip20", system="腾讯新闻").driver loger = log("baidutest") home1 = home(dr, loger) # home1.test01() home1.test02() sleep(5) dr.quit()
def scraping_all(): """amazonの全カテゴリの情報を取得する""" driver = Driver(True) try: # ランキングトップページへ遷移 driver.get(RNK_TOP_URL) driver.wait_until_presence_of_all_elements_located() time.sleep(1) # 遷移先を取得 category_dict = {} category_elems = driver.find_element(By.ID, "zg_browseRoot").find_elements( By.TAG_NAME, "a") for elem in category_elems: # 遷移先を辞書形式で取得。{カテゴリ名: url} category_dict[elem.text] = elem.get_attribute("href") # カテゴリごとに処理を実施 for k, v in category_dict.items(): # k=カテゴリ名, v=url # 【カテゴリ別商品一覧】商品別に値を取得する result_list = [[ "category", "ranking", "name", "price", "isprime", "stock", "delivery", "ASIN" ]] item_list = [] # CSVpath csv_path = CSV_ROOT_URL + k + ".csv" # カテゴリ別商品一覧画面の情報を取得する _get_item_overview_info(driver, v, k, item_list) _get_item_overview_info(driver, v + "&pg=2", k, item_list) for item in item_list: # 商品詳細情報を取得する _get_item_detail_info(driver, item, k, result_list) CSVio.write_list_to_csv(csv_path, result_list) break finally: driver.quit()
def scraping_all_bybs4(): """全カテゴリのスクレイピング""" # ドライバを起動 driver = Driver(True) try: # 全カテゴリのカテゴリ名: URLを保持する category_dict = get_category_dict(RNK_TOP_URL, driver) # 各カテゴリごとに商品情報を取得する for category_name, href in category_dict.items(): # csvに出力するリストを作成 result_list = [[ "category", "ranking", "name", "price", "isprime", "stock", "delivery", "ASIN" ]] item_list = [] # 出力するCSVパス csv_path = CSV_ROOT_URL + category_name + ".csv" # カテゴリ別商品一覧画面の情報を取得する _get_item_overview_info(driver, href, category_name, item_list) _get_item_overview_info(driver, href + "&pg=2", category_name, item_list) for item in item_list: # 商品詳細情報を取得する _get_item_detail_info(driver, item, category_name, result_list) CSVio.write_list_to_csv(csv_path, result_list) break finally: driver.quit()
def get_category_list(url, driver: Driver = None): """amazonの全カテゴリのカテゴリ名とURLをリスト形式で取得する""" driver = Driver(True) try: # カテゴリ一覧画面に遷移する driver.get(url) # htmlを解析 soup = BeautifulSoup(driver.page_source(), "lxml") # 全カテゴリのカテゴリ名: URLを保持する result = [["category_name", "category_url"]] category_link_list = soup.select("#zg_browseRoot")[0].select("a") for elem in category_link_list: result.append([elem.text, elem.get('href')]) return result except Exception as err: logger.error(f"カテゴリ取得中にエラーが発生しました。error:{err}") return [] finally: driver.quit()
def scraping_bybs4(category_name, url): """カテゴリURLを指定しての検索""" # csvに出力するリストを作成 result_list = [[ "category", "ranking", "name", "price", "isprime", "stock", "delivery", "ASIN" ]] item_list = [] # 出力するCSVパス csv_path = CSV_ROOT_URL + category_name + ".csv" # ドライバを起動 driver = Driver(False) try: # カテゴリ別商品一覧画面の情報を取得する _get_item_overview_info(driver, url, category_name, item_list) _get_item_overview_info(driver, url + "&pg=2", category_name, item_list) count = 0 for item in item_list: count += 1 if count >= 5: break # 商品詳細情報を取得する _get_item_detail_info(driver, item, category_name, result_list) CSVio.write_list_to_csv(csv_path, result_list) finally: driver.quit()