直接上代码

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 爬爬 猪 八 戒】相关推荐

  1. 鸿蒙是什么动物,悟空是猴,八戒是猪,沙和尚是什么动物?乌巢禅师一句话说出答案...

    原标题:悟空是猴,八戒是猪,沙和尚是什么动物?乌巢禅师一句话说出答案 西游记作为一部名著,作者可是费劲苦心,设置了很多谜团,等着我们去解读,关于沙和尚的身世之谜,你又知道多少呢? 事情还得从取经队伍说 ...

  2. 八戒致高翠兰的一封情书

    亲爱的兰妹: 今随师父西天取经回来, 牛皮癣的治疗 ,在灵山被如来佛祖封为受用的净坛使者,每天俺对着满目的珍馐佳肴食不甘味,你道为何?想你呗!衣带渐宽终不悔, 胰腺癌 ,为伊消得人-憔悴,故托鸿雁捎去 ...

  3. 灰吧!骚年!(缅怀八戒贴)

    时光如流水一般哗啦啦地流逝,我们来到兄弟连已经一个月了,在这一个月里,我们每天吃饭.睡觉.学习.扯淡,过着充实而寂寞的生活.天气好的时候,天空是哇蓝哇蓝地,我们学习到很晚,在每一个月黑风高的杀人夜里回 ...

  4. 八戒转世投胎竟然是Java设计模式:桥接模式

    桥接模式 示例 代码实例 桥接模式 定义 意图 主要解决问题 何时使用 优缺点 八戒转世投胎的故事 示例 请开发一个画图程序,可以画各种颜色不同形状的图形,请用面向对象的思 想设计图形 分析: 1.比 ...

  5. BUUCTF——萌萌哒的八戒

    题目: 萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 注意:得到的 flag 请包上 flag{} 提交 解题: 根据题目介绍 ...

  6. BUUCTF题解——萌萌哒的八戒

    题目来源:BUUCTF 题目名称:萌萌哒的八戒 题目描述: 萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 注意:得到的 fla ...

  7. BUU-Crypto-萌萌哒的八戒

    萌萌哒的八戒 题目描述:萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 注意:得到的 flag 请包上 flag{} 提交 解题 ...

  8. BUUCTF 萌萌哒的八戒 1

    题目描述: 萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 密文: 解压是一张图片 解题步骤: 1.看图,观察密文特征,结合题目 ...

  9. CTF 每日一题 Day20 萌萌哒的八戒

    题目名称:萌萌哒的八戒 题目类型:Crypto 题目来源:BUUCTF 题目描述:萌萌哒的八戒原来曾经是猪村的村长,从远古时期,猪村就有一种神秘的代码.请从附件中找出代码,看看萌萌哒的猪八戒到底想说啥 ...

最新文章

  1. MIT-THU未来城市创新网络即将和你见面!
  2. 一个封装的使用Apache HttpClient进行Http请求(GET、POST、PUT等)的类。
  3. B站Up主上传质量调优实践
  4. .Net Core3.0 日志 logging
  5. 求和(莫比乌斯反演)
  6. Oracle 练习题P256
  7. Unity Tiling和offset的使用
  8. java 更改css_求助java正则表达式问题,我现在想用java程序操作我本地的a.css文件,并且对此文件里边的代码做更改。...
  9. 关于个人博客转移的那些事
  10. c# Point不能输入小数
  11. b+树时间复杂度_几分钟学会Java实现图的最小生成树:Kruskal算法
  12. 悉尼大学BUSS6002Assignment1课业解析
  13. 防火墙多选路出口(ISP选路、策略路由、智能选路)
  14. 动图太大无法添加到微信表情怎么办?
  15. 陀螺仪的简单介绍讲解
  16. 联盛德W806-KIT开发板试用评测系列之二:ADC 功能使用与测试
  17. 什么是非同质化代币(NFT)\ NFT有哪些应用?
  18. 【C++】9.GIS应用:开源GIS平台开发入门(MapServer+QGIS+PostGIS+OpenLayers)
  19. 基于java的CRM客户关系管理系统的设计与实现
  20. 华为mate30老是显示无法连接服务器,华为Mate30 Pro手机微信信息老是发不出,提示无法连接到网络...

热门文章

  1. 老男孩教育每日一题-2017-04-25:怎样产生一个子shell?
  2. 蓝牙4.0大数据分包处理
  3. 13商软 《软件工程》课程设计
  4. DB2 sql复制error sqlcode2038
  5. Serverless 实战 —— 阿里云函数计算配合SpringBoot项目
  6. 物联网、工业互联网大数据的特点
  7. RMAN备份恢复报错 ORA-19573: cannot obtain exclusive enqueue for datafile 5
  8. Windows下自动备份Oracle数据库
  9. Linux设置 cockpit 自动开机启动
  10. MYSQL性能查看(命中率,慢查询)