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()
Exemple #2
0
 def test(self):
     dr = Driver(device="huaweip20", system="腾讯新闻").driver
     loger = log("baidutest")
     home1 = home(dr, loger)
     # home1.test01()
     home1.test02()
     sleep(5)
     dr.quit()
Exemple #3
0
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()
Exemple #4
0
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()
Exemple #5
0
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()
Exemple #6
0
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()