python 模擬搜索應用並爬取應用圖片

模擬搜索某個應用名,並爬取應用名和圖片下載到本地

也可以從excel表中數據來模擬

#!/usr/bin/env python

# -*- coding: utf-8 -*-
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
from lxml import etree
import urllib3
import re
import urllib
import urllib.request
import xlrd

wb = xlrd.open_workbook(r'C:/Users/Administrator/PycharmProjects/untitled/gxd/search_logo/search_app_logo.xls')
sh = wb.sheet_by_index(0)  # 第一個表
rowName = sh.row_values(0)#讀取一行的數據
colName = sh.col_values(4)#讀取一列的數據
row = len(colName)#讀取行數
col = len(rowName)#讀取列數
print(col,row)
for i in range(0,row+1):
    if colName[i] == '':
        print()
    else:
        # search_app_name = input(('輸入要搜索的應用名:'))
        driver = webdriver.Chrome()
        driver.get("https://sj.qq.com/myapp/")
        sleep(1)
        driver.find_element_by_id("J_MainInput").clear()
        driver.find_element_by_id("J_MainInput").send_keys(colName[i])
        driver.find_element_by_id("J_SearchBtn").click()
        sleep(1)
        now_url = driver.current_url
        headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36;'
           }
        response = requests.get(now_url,headers=headers)
        r = response.text
        html = etree.HTML(r,etree.HTMLParser())
        r1 = driver.find_element_by_xpath('//*[@id="J_SearchDefaultListBox"]/li[1]/div[1]/div[1]/div[1]/a/img').get_attribute('src')
        r2 = driver.find_element_by_xpath('//*[@id="J_SearchDefaultListBox"]/li[1]/div[1]/div[2]/div[1]/div[1]/a').text
        if r2 == colName[i]:
            urllib.request.urlretrieve(r1,'%s.jpg' %r2)
            print("搜索結果 ",r2," 存儲成功")
        elif colName[i] in r2:
            print("搜索名字與結果不符,但是包容,當前搜索結果爲 ",r2," 要存儲嗎  Y/N")
            p = input('')
            if p=='Y':
                urllib.request.urlretrieve(r1,'%s.jpg' %r2)
                print("搜索結果 ", r2, " 存儲成功")
            else:
                print("請手動搜索",colName[i])
        else:
            print("搜索名字與結果不符,請手動搜索",colName[i])
        driver.close()

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章