酒业
名酒
贵州白酒
白酒品牌
+

京东飞天茅台抢购脚本,天虹抢购茅台脚本

2023-08-14 21:04:15    作者:中国白酒网    来源:www.zgbaijiu.net

白酒厂家供应茅台酒 五粮液 国窖 剑南春等高端名酒

厂家一手货源,支持代理批发,全国可货到付款

批发拿货请联系微信:LLBB1935

京东飞天茅台抢购脚本(天虹抢购茅台脚本)、新营销网红网经过数据分析整理出京东飞天茅台抢购脚本(天虹抢购茅台脚本)相关信息,仅供参考!


在硒库之前,我们分析了简单网页直接加载的结果。
也就是说,请求库请求的所有网页数据都存在。


然而,情况并非总是如此。

京东飞天茅台抢购脚本,天虹抢购茅台脚本


有很多大型网站的网页数据都是在执行javascript后获取的。
如果需要定期和爬虫打交道,就需要分析JavaScript代码。


但即使分析了,也可能有很多加密的数据,有时候很难发现分析的规律。
这时候如果要抓取数据,就必须等待浏览器加载获取。


为了获得所见即所得的web数据,我们必须等待浏览器完成加载。
此时,只要加载了,再复杂的反爬虫技术也不会影响抓取结果。


这个库就是Selenium库,可以仿真浏览器加载生成网页,即所见即所得。
通常,在使用之前必须安装该库:

安装Pip selenium。
但是只有selenium库不能运行程序,因为selenium库使用WebDriver接口。
举个例子,如果以后我们都用Chrome浏览器,那么你就需要下载chromedriver。
下载链接如下:

http://npm.taobao.org/mirrors/chromedriver/在这个链接中找到了相应的系统,下载了Chrome浏览器的chromedriver版本。
下载后,开发时建议在PATH开发环境中配置,这样项目在哪里都能运行。


如果不配置环境变量,可以运行项目目录中的文件。
稍后,我们将解释如何在不配置环境的情况下在任何地方运行,因此我们将在这里跳过这一部分。


quote的基本用法因为我们的Selenium库的运行环境已经完全配置成功了。
下面,我们来实现最基本的用法,就是打开淘宝,自动搜索两根棒棒糖。
示例如下:

从selenium导入webdriver从selenium.webdriver.common.keys导入密钥从selenium.webdriver.common.by导入by从selenium.webdriver.support。
wait import web driver wait from selenium . web driver . support import expected _ conditions as electry:browser=web driver。
chrome(’。
/chrome driver )browser . get( 3359 www.jd.com/)input=browser . find _ element _ by _ id( key )input . send _ Keys(没有两根棒棒糖)input.send_keys(Keys。
ENTER)wait=web driver wait(browser,5)wait . until(EC . presence _ of _ all _ elements _ located((By。
ID,J _ selector ))print(browser . title)print(browser . current _ URL)print(browser . page _ source)browser . close()exception as e:print(e)browser . close()运行后效果如下:

这里,我们通过指定文件位置来设置chromedriver,这是不配置环境的方法。
但是,这是在项目目录中,您可以运行它,而无需编写默认值。
其他的,我们通过browser.get()加载网页,通过find_element_by_id()找到标签,通过send_keys()填写标签内容,通过send_keys(Keys)按回车键仿真搜索。
回车)。
至于其他后续,有详细介绍。


查找节点在基本用法中,我们使用find_element_by_id()方法查找节点,但是find有很多方法。
我们先来看一张图:

如您所见,我们可以通过类、id、xpath、tag_name等找到节点的内容。
并且有两种方式的元素和元素对于具有相同标签或类的节点。


元素获取所有集合的列表,元素获取一个标签,如果多个标签相同,则获取第一个标签。


找单个节点,我们用这些方法找一个节点。
首先,我们使用元素方法来寻找单个节点。
示例代码如下:

从selenium导入web driver from selenium . web driver . common . by导入Bytry: browser=webdriver。
chrome(’。
/chrome driver )browser . get( 3359 www.jd.com/)#按id查找单个元素input=browser . Find _ element _ by _ id( key )#查找单个元素mob lie=browser . Find _ element _ by _ class _ name( mobile _ txt )print(mob lie . text)#查找单个元素XPath=browser . Find _ element _ by _ XPath(//*[@ id= ShortcutServiceButton ])print(XPath . text)#按名称查找单个元素Meta=browser.find _ element _ by print(meta . get _ attribute( content ))Div=browser . find _ element _ by _ tag _ name( Div )print(Div . text)#按类查找单个元素的一般方法mob lie=browser . find _ element(by . class _ name,Mobile _ txt )print(mob lie . text)browser . close()例外情况为e: print (e) browser.close()这里我们使用JD.COM网页测试并获取单个元素, 运行后,效果如下:

特别注意最后一个通用方法:find_element。
它前面是一个字符串,指定您要查找的规则,后面是这个规则。


在多个节点的Selenium库中查找elements()的每个方法都对应一个elements()方法。
elements()方法用于查找多个节点。
例子如下:

从selenium导入web driver from selenium . web driver . common . by导入Bytry: browser=webdriver。
chrome(’。
/chrome driver )browser . get( https://www . JD . com/)divs=browser . find _ elements _ By _ tag _ name( div )I=0 for div in divs:if I==5:break print(div . text)I=1 mob lies=browser . find _ elements(By。
CLASS_NAME,Mobile _ txt )for moblies in moblies:print(moblie . text)browser . close()除了作为e: print (e) browser.close()的例外。
这里,我们只用两种方法举例。
其他方法是直接在元素后面添加一个s。
因为elements()方法获取元素列表,所以它可以逐个遍历它们。


运行后,效果如下:

节点交互在之前的基础用法中,我们通过Selenium库实现了自动搜索等功能。
这也是Selenium库最大的优势,可以和节点交互,可以仿真人的操作。


比如输入文本框、点击按钮、点击链接等。
都属于互动的范畴。
完全支持Selenium库。
在这里,我们用下面的代码从JD.COM的主页进入家电部分:

Browser=webdriver.chrome(。
/chrome driver )browser . get( 3359 www.jd.com/)a=browser . find _ element _ by _ class _ name( cate _ menu _ lk )a . click()其click()方法,因为这是超链接,点击后会跳转。
这里就不展示了,有兴趣的读者可以自己测试一下。


在实际的爬虫中,动作链往往不仅仅用于跳转链接和搜索。
通常情况下,我们的运动是连续的。


比如我要仿真手机下单,首先需要进入手机购买界面,选择购买的型号,点击购买链接,然后支付。
这是一个完整的动作链。


在Selenium库中,这些ActionChains的实现需要创建ActionChains对象,并通过ActionChains类的几个方法向浏览器发送一个或多个动作。


现在,让我们实现一个有趣的动作链。
我们刚才不是点了手机链接吗?现在,我们不再点击链接,而是将这个二级导航逐一展开。
代码如下:

从selenium导入webdriver从selenium.webdriver导入操作链导入timebrowser=webdriver。
chrome(’。
/chrome driver )browser . get( 3359 www.jd.com/)actions=action chains(browser)lis=browser . find _ elements _ by _ CSS _ selector(。
lis中li的cate _ menu _ item ):actions . move _ to _ element(Li).

它的动作链还有很多其他的操作方式,比如用drag_and_drop()拖动,用double_click()双击等。
这几个字一个个太多了,用法也差不多,我就略过了。


执行Javascript代码说一个不好的使用爬虫的方法,就是刷新页面浏览量。
但是很多网页并没有把打开网站当成浏览量的增加,而是你浏览或者停留一段时间才增加浏览量。
这时候你该怎么办?


我们可以自己定义一个Javascript代码来慢慢滑动页面,或者直接滑动到底部。
示例代码如下:

从selenium导入webdriverbrowser=webdriver。
chrome(’。
/chrome driver )browser . get( https://www . JD . com/)browser . execute_script( window . scroll to(0,Document.body.scrollHeight))在Selenium库中,我们使用execute _ script来执行Javascript代码,这里是指滑动到网页底部。
类似地,可以通过execute_async_script()方法警告弹出框。


获取节点信息节点信息是一些简单的数据。
在这里,边肖用一个表格列出了这些数据。
如果调用它,它将显示在下表中:

属性/方法

意义

文本

获取标签文本

编号

获取标签id

标签名称

获取标签名称

大小

获取节点的大小。


位置

获取节点相对于页面的绝对坐标。


Get_attribute(属性名)

获取节点属性

以上是一些简单的方法,这里就不演示了。
但是,有一个节点需要注意,那就是位置。
我们在识别验证码的时候,经常会用它来定位,然后截图。
当然,它也可以应用于移动元件的锁定位置。


管理Cookie实际上,我们最常使用的是Selenium库及其辅助登录。
要知道现在各种验证码都有,有的需要手机验证码才能登录,有的需要滑动模块才能登录。
不过博主相信以后肯定是二维码登录。


比如博主写脚本抢购茅台,需要用辅助验证码登录,开始抢购。
登录后,我们主要用它来获取cookies。
下面,让我们仿真JD.COM登录并获取cookies。
示例如下:

从selenium导入web driver import time browser=web driver。
chrome(’。
/chrome driver )browser . get( https://www . JD . com/)log in _ button=browser . find _ element _ by _ class _ name( user _ log in )log in _ button . click()time . sleep(10)print(browser . get _ cookies())browser . delete _ all _ cookies()print(browser.

可以看到,我们通过get_cookies获取登录后的cookie,通过delete_all_cookies删除cookie值。
如果有现成的cookie,可以通过add_cookie方法设置。


在这里改变节点的属性,我们来做一个有趣的实验。
比如百度中间有一个百度点击按钮。
这里我们试着移动它。
例子如下:

从selenium导入web driver import time browser=web driver。
chrome(’。
/chrome driver )browser . get( https://www . Baidu . com/)log in _ button=browser . find _ element _ by _ id( su )x=[50,90,150,180]y=[100,200,250,60]for I in range(len(x)):js _ code= arguments[0]. style . position= absolute arguments[0]. style . left= { } Px arguments[0]. style . top= { } p .format (x [i],y[I])browser . execute _ script(js _ code,login _ button) time.sleep (2)按钮会在设定的x,y间隔内每2秒移动一次。
有兴趣的读者可以自己跑一跑观察一下。


实战:获取JD.COM最畅销的编程书籍的第一步非常简单。
就像刚开始的基本用法一样,搜索编程书籍然后跳转。
但是,后面的内容才是真正的爬虫问题。
在这里,我们先来看看班当书在哪里,如下图所示:

可以看到我们的每一个图书订单都是以ul为单位的。
但是,这里只是默认搜索编程书籍的结果。
我们需要的是销量排名,所以需要再次点击销量才能得到。


的完整代码如下所示:

从硒导入从selenium导入web驱动程序的时间。
网络驱动。
常见。
键导入硒的钥匙。
网络驱动。
常见。
经过导入来自硒。
网络驱动。
支持。
等待导入来自selenium的web驱动程序等待。
网络驱动。
支持导入预期条件为electry:browser=web driver .chrome(./chrome driver’)浏览器。
得到( https://www。
JD。
com/)search _ edit=browser。
find _ element _ by _ id( key )search _ edit。
send _ keys(编程书籍)search _ edit.send _ keys(密钥. ENTER)wait=web驱动等待(浏览器,5)等待。
直到(EC。
所有元素的存在位置(.ID, J _ selector ))时间。
睡眠(5)sales _ volume=浏览器。
find _ element _ By _ CSS _ selector( # J _ filter div。
f线。
顶部分区。
f-sort a:n-child(2))print(sales _ volume。
正文)销量_销量。
单击()时间。
睡眠(5)等待。
直到(EC。
所有元素的存在。
CLASS_NAME, tab-content-item ))div=browser。
find _ element _ by _ id( J _ goods list )ul=div。
find _ element _ by _ tag _ NAME( ul )。
在lis:title=Li中查找Li的_ elements _ by _ tag _ NAME( Li )。
find _ element _ by _ CLASS _ NAME( p-NAME ).find _ element _ by _ tag _ name( a )commit=Li。
find _ element _ by _ class _ name( p-commit ).find _ element _ by _ tag _ name( a )price=Li。
find _ element _ by _ class _ name( p价格).find _ element _ by _ tag _ name( I )print(书籍名称:,标题。
get _ attribute( title ))print(书籍销量:,commit.text)打印(书籍购买:, https://标题。
get _ attribute( href ))print(书籍价格:,价格。
text)打印()浏览器。
关闭()例外为e:打印(e)浏览器. close()运行之后,效果如下:

更多关于京东飞天茅台抢购脚本(天虹抢购茅台脚本)的请关注此文章。


白酒工厂供应茅台 五粮液 剑南春 国窖等高端白酒

我们是白酒厂家一手货源渠道,高质量、价格低

各品牌名酒批发微信:LLBB1935


版权声明 1、本站名称:中国白酒网
2、本站网址:www.zgbaijiu.net
3、上述内容来源网络收集,本站不保证内容真实性。
4、如需要上述酒水货源,请联系信息中的电话或微信。
5、上述内容如有侵权,请从底部”联系我们“进行删除。
  • 相关文章
  • 热门文章
  • 相关评论
关于白酒网 - 网站栏目 - 联系我们 - 投稿说明 - 会员交流

中国白酒网 zgbaijiu.net © 2023版权所有


  桂ICP备2023000041号-1
【电脑版】  【回到顶部】