【Selenium 爬爬 猪 八 戒】
直接上代码
from concurrent.futures import ThreadPoolExecutor
import time
import os
import requests
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver import ActionChainsrootrurl = "https://beijing.zbj.com/search/f/?kw=%E6%95%B0%E6%8D%AE%E5%BA%93"
chromeExeLoc = 'D:/software/chrome/chromedriver_win32/chromedriver.exe'
headers = {"Referer": rootrurl,'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",'Accept-Language': 'en-US,en;q=0.8','Cache-Control': 'max-age=0','Connection': 'keep-alive'
} ###设置请求的头部,伪装成浏览器def test():# 无头浏览器 这样浏览器就不会弹出那个chrome的web浏览器界面options = Options()options.add_argument('--headless')driver = webdriver.Chrome(chromeExeLoc)#driver = webdriver.Chrome(chromeExeLoc, options=options)driver.maximize_window() # 最大化窗口driver.get(rootrurl)# 找到加载更多的按钮,多加载一些driver.implicitly_wait(30) # 设置隐式等待driver.execute_script('window.scrollTo(0,document.body.scrollHeight)') # 下拉到最下面driver.find_element_by_class_name('dialog-bottom-close').click() # 这个黑框框需要删除,不然会阻拦加载更多按钮的点击for i in range(1, 2):time.sleep(3) # 固定等待driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')elem = driver.find_element_by_class_name('more-result').find_element_by_tag_name('button')ActionChains(driver).move_to_element(elem).perform()elem.click() # 点击加载更多print('loading more...')# 发现所有的itemselems = driver.find_elements_by_class_name('witkey-item')for item in elems:# 下载每个信息text = item.find_element_by_class_name('service-shop').find_element_by_class_name('text-overflow').textcity = item.find_element_by_class_name('service-shop').find_element_by_class_name('city-icon')\.find_element_by_tag_name('span').textelem = item.find_element_by_class_name('service-icons')cons = []if elem is not None:es = elem.find_elements_by_class_name('tag-text')for t in es:cons.append(t.text)price = item.find_element_by_class_name('service-price').find_element_by_class_name('price').textamount = item.find_element_by_class_name('service-price').find_element_by_class_name('amount').texttitle = item.find_element_by_class_name('service-title').find_element_by_tag_name('p').texttags_e = item.find_element_by_class_name('service-tags')tags = []if tags_e is not None:tags = tags_e.text.split("\n")print("{}\t{}\t{}\t{}\t{}\t{}\t{}".format(text, city, cons, price, amount, title, tags))passdriver.close()if __name__ == '__main__':test()
【Selenium 爬爬 猪 八 戒】相关推荐
- 鸿蒙是什么动物,悟空是猴,八戒是猪,沙和尚是什么动物?乌巢禅师一句话说出答案...
原标题:悟空是猴,八戒是猪,沙和尚是什么动物?乌巢禅师一句话说出答案 西游记作为一部名著,作者可是费劲苦心,设置了很多谜团,等着我们去解读,关于沙和尚的身世之谜,你又知道多少呢? 事情还得从取经队伍说 ...
- 八戒致高翠兰的一封情书
亲爱的兰妹: 今随师父西天取经回来, 牛皮癣的治疗 ,在灵山被如来佛祖封为受用的净坛使者,每天俺对着满目的珍馐佳肴食不甘味,你道为何?想你呗!衣带渐宽终不悔, 胰腺癌 ,为伊消得人-憔悴,故托鸿雁捎去 ...
- 灰吧!骚年!(缅怀八戒贴)
时光如流水一般哗啦啦地流逝,我们来到兄弟连已经一个月了,在这一个月里,我们每天吃饭.睡觉.学习.扯淡,过着充实而寂寞的生活.天气好的时候,天空是哇蓝哇蓝地,我们学习到很晚,在每一个月黑风高的杀人夜里回 ...
- 八戒转世投胎竟然是Java设计模式:桥接模式
桥接模式 示例 代码实例 桥接模式 定义 意图 主要解决问题 何时使用 优缺点 八戒转世投胎的故事 示例 请开发一个画图程序,可以画各种颜色不同形状的图形,请用面向对象的思 想设计图形 分析: 1.比 ...
- BUUCTF——萌萌哒的八戒
题目: 萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 注意:得到的 flag 请包上 flag{} 提交 解题: 根据题目介绍 ...
- BUUCTF题解——萌萌哒的八戒
题目来源:BUUCTF 题目名称:萌萌哒的八戒 题目描述: 萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 注意:得到的 fla ...
- BUU-Crypto-萌萌哒的八戒
萌萌哒的八戒 题目描述:萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 注意:得到的 flag 请包上 flag{} 提交 解题 ...
- BUUCTF 萌萌哒的八戒 1
题目描述: 萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 密文: 解压是一张图片 解题步骤: 1.看图,观察密文特征,结合题目 ...
- CTF 每日一题 Day20 萌萌哒的八戒
题目名称:萌萌哒的八戒 题目类型:Crypto 题目来源:BUUCTF 题目描述:萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 ...
最新文章
- MIT-THU未来城市创新网络即将和你见面!
- 一个封装的使用Apache HttpClient进行Http请求(GET、POST、PUT等)的类。
- B站Up主上传质量调优实践
- .Net Core3.0 日志 logging
- 求和(莫比乌斯反演)
- Oracle 练习题P256
- Unity Tiling和offset的使用
- java 更改css_求助java正则表达式问题,我现在想用java程序操作我本地的a.css文件,并且对此文件里边的代码做更改。...
- 关于个人博客转移的那些事
- c# Point不能输入小数
- b+树时间复杂度_几分钟学会Java实现图的最小生成树:Kruskal算法
- 悉尼大学BUSS6002Assignment1课业解析
- 防火墙多选路出口(ISP选路、策略路由、智能选路)
- 动图太大无法添加到微信表情怎么办?
- 陀螺仪的简单介绍讲解
- 联盛德W806-KIT开发板试用评测系列之二:ADC 功能使用与测试
- 什么是非同质化代币(NFT)\ NFT有哪些应用?
- 【C++】9.GIS应用:开源GIS平台开发入门(MapServer+QGIS+PostGIS+OpenLayers)
- 基于java的CRM客户关系管理系统的设计与实现
- 华为mate30老是显示无法连接服务器,华为Mate30 Pro手机微信信息老是发不出,提示无法连接到网络...
热门文章
- 老男孩教育每日一题-2017-04-25:怎样产生一个子shell?
- 蓝牙4.0大数据分包处理
- 13商软 《软件工程》课程设计
- DB2 sql复制error sqlcode2038
- Serverless 实战 —— 阿里云函数计算配合SpringBoot项目
- 物联网、工业互联网大数据的特点
- RMAN备份恢复报错 ORA-19573: cannot obtain exclusive enqueue for datafile 5
- Windows下自动备份Oracle数据库
- Linux设置 cockpit 自动开机启动
- MYSQL性能查看(命中率,慢查询)