江山几百年来人才辈出,各有风格。清代赵翼诗歌五首。第二,长江后浪推前浪。新人换旧人需要很长时间。东西该换了,尤其是手机,这几年发展太快,内存越来越不足。想换个新手机,不知道换什么?
江山代有才人,各领风骚数百年——论清代赵翼的五首诗(下)——长江后浪推前浪,新老浮民——刘崧·阿克斯《清锁高邑》
东西用久了要换新的,尤其是手机。这几年发展太快,APP越来越大,内存越来越不足。想换个新手机,不知道换什么?那我今天就爬淘宝,看看淘宝手机的数据,供参考。
我的开发环境:python3.8计算机系统:Windows10开发工具:pycharm要用的包:selenium,csv,time网站:https://www.taobao.com/用的是selenium,今天的自动化测试工具。没有这个包的同学可以用pip install selenium来安装。安装后,他们需要安装一个浏览器驱动程序。我使用谷歌浏览器。
Http://chromedriver.storage.googleapis.com/index.html打开这个链接,找到了与你的浏览器版本相对应的驱动程序。这是我的浏览器版本。
你可以看到我的版本是94.0.4606.81。如果我找不到相同的,我会找到一个更低的版本。
选择相应的系统,我的是win系统。
将下载的压缩文件解压,放入python解释器的当前文件夹。
仔细讨论
来自硒。WebDriver导入Chromeweb = chrome () web。get ("https://www.baidu.com ")如果网页正常出现,就成功了。注意,一定要和你的版本匹配,否则会出现这样的情况。
更新浏览器后,此驱动程序版本太低,无法支持。
至于其他浏览器,这里就不做过多描述了。流程基本相同。至于网址,你可以上网查。让我们言归正传。
Selenium是模拟一个人在浏览器上的正常操作。通常,我们打开一个网页,在搜索框中输入内容,然后单击搜索。
import time import CSV from selenium . web driver import chrome def main():win . get(" https://www . Taobao . com/")win . find _ element _ by _ XPath("//*[@ id = " q "]")。send_keys(商品)#点击搜索框,在win . find _ element _ by _ XPath("/*[@ ID = " j _ t search form "]/div[1]/button ")前输入要搜索的内容。Click () #点击搜索按钮win.maximize_window() #放大网页方便我们扫码登录time.sleep(15) #等待15秒给我们扫码的时间if _ _ name _ = = " _ _ main _ _ ":commodity = input("你要查询的产品:")win = Chrome() main()这里我们需要扫码登录才能搜索。
当我们分析搜索接口时,我们发现所有的商品数据都放在div标签中。我们可以看到,并不是所有的div都有商品数据,但是第四个div有数据。这些div都有一个相同的特点,就是属性相同,可以通过类定位被xpath选择。
物品=赢。find_elements_by_xpath("//div[@ class = " items "]/div[@ class = " item j _ mouseroverreq "]")需要注意的是,由于我们选择了多个div,find _ elements _ by _ XPath中的元素必须加上S,才能返回列表。
遍历获得的div,取出我们想要的数据。
对于items中的item:#旗舰店= item.find _ element _ by _ XPath("。//div [@ class =" shop "]/a ")。text # Description desc =项目。find _ element _ by _ XPath("。/div [2]/div [2]/a”)。文本#价格=项目。find _ element _ by _ XPath("。/div [2]/div/ Strong”)。text #人数num = item。Find _ element _ by _ XPath("。//div [@ class =" Deal-CNT "]")。文本#地址=项目。find _ element _ by _ XPath("。//div [@ class =" location "]"。文本,然后将获得的数据存储在以搜索名称命名的csv文件中。
用open(f"{commodity}。csv ",mode="a ",newline= " ",encoding = " ut F-8-SIG ")as f:CSV _ writer = CSV . writer(f,delimiter= ",")CSV _ write . writerow([商店,desc,价格,数量,地址])附上结果。
这次先这么做,下次再把得到的数据可视化生成直方图、饼状图、地图分布。
所有代码如下
导入time import CSV from selenium . web driver导入chrome def get _ data():items = win . find _ elements _ by _ XPath("//Div[@ class = " items "]/Div[@ class = " item j _ mouseroverreq "]")for items:#旗舰店= item。find _ element _ by _ XPath("。//div [@ class = "shop"]/a ")。text # Description desc =项目。Find _ element _ by _ XPath("。/div [2]/div [2]/a”)。文本#价格=项目。Find _ element _ by _ XPath("。/div [2]) /div/div/strong”)。text #人数num = item。Find _ element _ by _ XPath("。//div [@ class =" Deal-CNT "]")。文本#地址=项目。find _ element _ by _ XPath("。//div [@ class =" location "]"。带有open (f "{commodity})的文本。CSV ",mode = "a ",newline = " ",encoding = " ut F-8-SIG ")as f:CSV _ writer = CSV . writer(f,delimiter= ",")CSV _ writer . writerw([商店,desc,价格,数量,地址])def main():win . get(" https://www . Taobao . com/")win . find _ element _ by _ XPath("/*[@ id = " q "]")。send _ keys(商品)#点击搜索框。在win . find _ element _ by _ XPath("/*[@ ID = " j _ t search form "]/div[1]/button ")之前输入要搜索的内容。点击()#点击搜索按钮win.maximize_window() #放大网页方便我们扫码登录time.sleep(15) #等待15秒给我们时间扫码get _ data()if _ _ name _ = " _ _ main _ _ ":commodity = input("你要查询的产品:")win = Chrome() main()。
评论前必须登录!
注册