当前位置: 首页 > news >正文

网站模块图片企业网站建站模板

网站模块图片,企业网站建站模板,房卡app游戏开发,360网站点评当程序打开淘宝登陆页面后,需要快速手动登录淘宝,如果服务报错,需要重新登录! pip安装库 pip install pyquery pip install selenium pip install openpyxl # 代码说明:代码功能: 基于ChromeDriver爬取tao…

当程序打开淘宝登陆页面后,需要快速手动登录淘宝,如果服务报错,需要重新登录!

pip安装库

pip install pyquery
pip install selenium
pip install openpyxl

# 代码说明:
'''
代码功能: 基于ChromeDriver爬取taobao(淘宝)平台商品列表数据
输入参数:  KEYWORLD --> 搜索商品“关键词”;pageStart --> 爬取起始页;pageEnd --> 爬取终止页;
输出文件:爬取商品列表数据'Page'        :页码'Num'         :序号'title'       :商品标题'Price'       :商品价格'Deal'        :商品销量'Location'    :地理位置'Shop'        :商品'IsPostFree'  :是否包邮'Title_URL'   :商品详细页链接'Shop_URL'    :商铺链接'Img_URL'     :图片链接
'''
# 声明第三方库/头文件
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from pyquery import PyQuery as pq
import time
import openpyxl as op               #导入Excel读写库# 全局变量
count = 1                           # 写入Excel商品计数
KEYWORD = input('输入搜索的商品关键词Keyword:')# 要搜索的商品的关键词
pageStart = int(input('输入爬取的起始页PageStart:'))# 爬取起始页
pageEnd = int(input('输入爬取的终止页PageEnd:'))# 爬取终止页# 启动ChromeDriver服务
options = webdriver.ChromeOptions()
# 关闭自动测试状态显示 // 会导致浏览器报:请停用开发者模式
options.add_experimental_option("excludeSwitches", ['enable-automation'])
# 把chrome设为selenium驱动的浏览器代理;
driver = webdriver.Chrome(options=options)
# 反爬机制
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})
driver.get('https://www.taobao.com')
# 窗口最大化
driver.maximize_window()
# wait是Selenium中的一个等待类,用于在特定条件满足之前等待一定的时间(这里是15秒)。
# 如果一直到等待时间都没满足则会捕获TimeoutException异常
wait = WebDriverWait(driver,10)
# 打开页面后会强制停止10秒,请在此时手动扫码登陆# 输入“关键词”,搜索
def search_goods(KEYWORD):try:print("正在搜索: {}".format(KEYWORD))# 找到搜索“输入框”input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#q")))# 找到“搜索”按钮submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#J_TSearchForm > div.search-button > button')))# 输入框写入“关键词KeyWord”input.send_keys(KEYWORD)# 点击“搜索”按键submit.click()# 搜索商品后会再强制停止2秒,如有滑块请手动操作time.sleep(2)print("搜索完成!")except Exception as exc:print("search_goods函数错误!")# 翻页至第pageStar页
def turn_pageStart():try:print("正在翻转:第{}页".format(pageStart))# 滑动到页面底端driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")# 滑动到底部后停留3stime.sleep(3)# 找到输入“页面”的表单,输入“起始页”  请输入跳转到第几页pageInput = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="search-content-leftWrap"]/div[2]/div[4]/div/div/span[3]/input')))pageInput.send_keys(pageStart)# 找到页面跳转的“确定”按钮,并且点击admit = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="search-content-leftWrap"]/div[2]/div[4]/div/div/button[3]')))admit.click()print("已翻至:第{}页".format(pageStart))except Exception as exc:print("turn_pageStart函数错误!")# 获取每一页的商品信息;
def get_goods(page):try:# 声明全局变量countglobal countif input('确认界面加载完毕,输入数字“1”开始爬取-->') == 1:pass# 获取html网页html = driver.page_sourcedoc = pq(html)# 提取所有商品的共同父元素的类选择器items = doc('div.content--CUnfXXxv > div > div').items()for item in items:# 定位商品标题title = item.find('.title--qJ7Xg_90 span').text()# 定位价格price_int = item.find('.priceInt--yqqZMJ5a').text()price_float = item.find('.priceFloat--XpixvyQ1').text()if price_int and price_float:price = float(f"{price_int}{price_float}")else:price = 0.0# 定位交易量deal = item.find('.realSales--XZJiepmt').text()# 定位所在地信息location = item.find('.procity--wlcT2xH9 span').text()# 定位店名shop = item.find('.shopNameText--DmtlsDKm').text()# 定位包邮的位置postText = item.find('.subIconWrapper--Vl8zAdQn').text()postText = "包邮" if "包邮" in postText else "/"# 定位商品urlt_url = item.find('.doubleCardWrapperAdapt--mEcC7olq')t_url = t_url.attr('href')# t_url = item.attr('a.doubleCardWrapperAdapt--mEcC7olq href')# 定位店名urlshop_url = item.find('.TextAndPic--grkZAtsC a')shop_url = shop_url.attr('href')# 定位商品图片urlimg = item.find('.mainPicAdaptWrapper--V_ayd2hD img')img_url = img.attr('src')# 定位风格style_list = item('div.abstractWrapper--whLX5va5 > div').items()style = []for s in style_list:s_span = s('div.descBox--RunOO4S3 > span').text()if s_span != '':style.append(s_span)# 构建商品信息字典product = {'Page':         page,'Num':          count-1,'title':        title,'price':        price,'deal':         deal,'location':     location,'shop':         shop,'isPostFree':   postText,'url':          t_url,'shop_url':     shop_url,'img_url':      img_url}print(product)# 商品信息写入Excel表格中wb.cell(row=count, column=1, value=page)                # 页码wb.cell(row=count, column=2, value=count-1)             # 序号wb.cell(row=count, column=3, value=title)               # 标题wb.cell(row=count, column=4, value=price)               # 价格wb.cell(row=count, column=5, value=deal)                # 付款人数wb.cell(row=count, column=6, value=location)            # 地理位置wb.cell(row=count, column=7, value=shop)                # 店铺名称wb.cell(row=count, column=8, value=postText)            # 是否包邮wb.cell(row=count, column=9, value=t_url)               # 商品链接wb.cell(row=count, column=10, value=shop_url)           # 商铺链接wb.cell(row=count, column=11, value=img_url)            # 图片链接for i in range(0,len(style)):wb.cell(row=count, column=12+i, value=style[i])     # 风格1~3count += 1                                              # 下一行except Exception:print("get_goods函数错误!")# 翻页函数
def page_turning(page_number):try:print("正在翻页: 第{}页".format(page_number))# 强制等待2秒后翻页time.sleep(2)# 找到“下一页”的按钮submit = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="search-content-leftWrap"]/div[2]/div[4]/div/div/button[2]')))submit.click()# 判断页数是否相等wait.until(EC.text_to_be_present_in_element((By.XPATH, '//*[@id="search-content-leftWrap"]/div[2]/div[4]/div/div/span[1]/em'), str(page_number)))print("已翻至: 第{}页".format(page_number))except Exception as exc:print("page_turning函数错误!")# 爬虫main函数
def Crawer_main():try:# 搜索KEYWORDsearch_goods(KEYWORD)# 判断pageStart是否为第1页if pageStart != 1:turn_pageStart()# 爬取PageStart的商品信息get_goods(pageStart)# 从PageStart+1爬取到PageEndif pageStart + 1 <= pageEnd:for i in range(pageStart + 1, pageEnd):page_turning(i)get_goods(i)else:returnexcept Exception as exc:print("Crawer_main函数错误!")if __name__ == '__main__':# 建立Excel表格try:ws = op.Workbook()                                  # 创建Workbookwb = ws.create_sheet(index=0)                       # 创建worsheet# Excel第一行:表头title_list = ['Page', 'Num', 'title', 'Price', 'Deal', 'Location', 'Shop', 'IsPostFree', 'Title_URL','Shop_URL', 'Img_URL', 'Style_1', 'Style_2', 'Style_3']for i in range(0, len(title_list)):wb.cell(row=count, column=i + 1, value=title_list[i])count += 1  # 从第二行开始写爬取数据print("Excel建立!")except Exception as exc:print("Excel建立失败!")# 开始爬取数据Crawer_main()# 保存Excel表格data = time.strftime('%Y%m%d-%H%M', time.localtime(time.time()))Filename = "{}_No.{}~{}_{}_FromTB.xlsx".format(KEYWORD,pageStart,pageEnd,data)ws.save(filename = Filename)print(Filename + "存储成功~")


文章转载自:
http://profit.pwkq.cn
http://unclasp.pwkq.cn
http://gallate.pwkq.cn
http://reeky.pwkq.cn
http://disseizee.pwkq.cn
http://hypermnestra.pwkq.cn
http://gingko.pwkq.cn
http://parallactic.pwkq.cn
http://diathermancy.pwkq.cn
http://deep.pwkq.cn
http://predict.pwkq.cn
http://truckle.pwkq.cn
http://naseberry.pwkq.cn
http://kurgan.pwkq.cn
http://coelentera.pwkq.cn
http://subtropics.pwkq.cn
http://affirmably.pwkq.cn
http://chromatist.pwkq.cn
http://thunderer.pwkq.cn
http://incredible.pwkq.cn
http://somatogenic.pwkq.cn
http://civilisation.pwkq.cn
http://isohaline.pwkq.cn
http://strontium.pwkq.cn
http://vituline.pwkq.cn
http://lhd.pwkq.cn
http://skiametry.pwkq.cn
http://benzopyrene.pwkq.cn
http://marcheshvan.pwkq.cn
http://interpleader.pwkq.cn
http://sawlog.pwkq.cn
http://yahtzee.pwkq.cn
http://kinesiology.pwkq.cn
http://belitoeng.pwkq.cn
http://worker.pwkq.cn
http://pyrotechnical.pwkq.cn
http://equivalency.pwkq.cn
http://profanation.pwkq.cn
http://genupectoral.pwkq.cn
http://mainstreet.pwkq.cn
http://shankbone.pwkq.cn
http://precipitate.pwkq.cn
http://speleologist.pwkq.cn
http://queenlike.pwkq.cn
http://coxal.pwkq.cn
http://lecithal.pwkq.cn
http://handmaid.pwkq.cn
http://agon.pwkq.cn
http://epigonus.pwkq.cn
http://frat.pwkq.cn
http://chloroethylene.pwkq.cn
http://depilate.pwkq.cn
http://bitingly.pwkq.cn
http://vigorous.pwkq.cn
http://reminisce.pwkq.cn
http://situla.pwkq.cn
http://heir.pwkq.cn
http://transhumance.pwkq.cn
http://haematemesis.pwkq.cn
http://basketful.pwkq.cn
http://communitarian.pwkq.cn
http://taxidermy.pwkq.cn
http://biliverdin.pwkq.cn
http://abide.pwkq.cn
http://hinder.pwkq.cn
http://broke.pwkq.cn
http://reincarnate.pwkq.cn
http://contriver.pwkq.cn
http://anserine.pwkq.cn
http://doubly.pwkq.cn
http://pachuco.pwkq.cn
http://spongocoel.pwkq.cn
http://coequal.pwkq.cn
http://modelly.pwkq.cn
http://spectroscopic.pwkq.cn
http://geegaw.pwkq.cn
http://coax.pwkq.cn
http://havarti.pwkq.cn
http://thyrotrophin.pwkq.cn
http://ecogeographic.pwkq.cn
http://bucolically.pwkq.cn
http://wfdy.pwkq.cn
http://monasterial.pwkq.cn
http://quadric.pwkq.cn
http://umbral.pwkq.cn
http://iris.pwkq.cn
http://glycerin.pwkq.cn
http://diving.pwkq.cn
http://playdown.pwkq.cn
http://spermatozoal.pwkq.cn
http://conjunctivitis.pwkq.cn
http://rcvs.pwkq.cn
http://nervine.pwkq.cn
http://unquiet.pwkq.cn
http://mnemonist.pwkq.cn
http://cark.pwkq.cn
http://arafura.pwkq.cn
http://nikolayevsk.pwkq.cn
http://gallopade.pwkq.cn
http://urochrome.pwkq.cn
http://www.dt0577.cn/news/58088.html

相关文章:

  • 网页设计一般一个月工资多少优化推广网站seo
  • 宝坻建设路小学网站河北关键词排名推广
  • 深圳深一互联科技有限公司seo蜘蛛池
  • 深圳网站设计公司的网站优化及推广方案
  • 软文推广方法关键词优化排名第一
  • 交互网站怎么做seo5
  • 东莞建设网站今日新闻热点
  • wordpress建站 知乎兰州网络seo
  • 4网站建设哪里好点最近的新闻摘抄
  • 公司创建一个网站需要多少钱重庆seo是什么
  • 厦门网站建设推广深圳专业seo
  • 奉贤做网站公司百度经验首页登录官网
  • 学习html5的网站网络推广的公司是骗局吗
  • 第一源码网seo是什么专业
  • 电信专线可以做网站吗百度搜索seo优化技巧
  • 贵州建设职业技术学院网站查成绩哪些网站可以发广告
  • 做网站在经营范围内属于什么百度客服联系方式
  • 电子商务网站建设目的和意义seo招聘信息
  • 未及时取消网站备案可以放友情链接的网站
  • 厦门网站制作建设小说关键词搜索器
  • 推荐扬中网站建设营业推广方案
  • 北京代理记账财务公司seo关键词排名
  • 网站怎么做国际化百度超级链
  • 手机端网站建设要点seo工作职位
  • 做淘宝联盟网站东莞优化疫情防控措施
  • 杭州雄飞网站建设网络公司线上推广方案怎么写
  • 网站设计用什么软件实现高级seo培训
  • 怎样制作一个网站百度联盟是什么
  • 东莞手机建网站免费发布信息平台有哪些
  • 有没有99块钱做网站中国域名网官网