用selenium接管浏览器,来规避检测

本来想直接在网页上找入口获取,但是没找到…,发现登陆之后在可以直接通过网页获取数据,所以就改用selenium,数据不难获取,主要是思路…
请求requests 解析selenium


重点:selenium接管浏览器


#chrome版本和chromedriver版本一定要一样
#chrome版本和chromedriver版本一定要一样
#chrome版本和chromedriver版本一定要一样(切记)chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"    #指定端口打开浏览器#接管指定端口的浏览器
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
# 添加了环境变量可以不用这一步
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get("https://www.baidu.com")  #可以通过打开百度测试一下

通过selenium来抓取数据,不用写复杂的请求头,不用模拟登录,比较方便,但是性能不太好
代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import pymysqlchrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
# 添加了环境变量可以不用这一步
browser = webdriver.Chrome(chrome_options=chrome_options)def get_data():  #获取页面数据company_names = browser.find_elements_by_xpath(".//div[@class='company_name']/a")  # 公司名称company_ins = browser.find_elements_by_xpath(".//div[@class='industry']")  # 公司简介salary = browser.find_elements_by_xpath(".//div[@class='li_b_l']/span[@class='money']")  # 薪水demand = browser.find_elements_by_xpath(".//div[@class='list_item_top']//div[@class='li_b_l']")  # 需求slogan = browser.find_elements_by_xpath(".//div[@class='li_b_r']")  # 口号return company_names, company_ins, salary, demand, slogandef enter_next():  #进入下一页try:next = browser.find_element_by_xpath(".//a[text()='下一页']")except:next = Nonereturn next#连接本地数据库
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="yhr104653", database="spiderinfo",charset="utf8")
cursor = conn.cursor()if __name__ == "__main__":get_data()while 1:next = enter_next()if next:next.click()time.sleep(10)  # 我网速比较慢,所以沉睡时间长一点company_names, company_ins, salary, demand, slogan = get_data()for i in range(len(company_names)):name = company_names[i].textins = company_ins[i].textsalary = salary[i].textdemand = demand[i].textslogan = slogan[i].textcursor.execute("insert into lagou(company_name,company_ins,salary,demand,slogan) values(%s,%s,%s,%s,%s)",(name, ins, salary, demand, slogan))   #向数据库中插入数据conn.commit()else:breakcursor.close()conn.close()  #关闭与数据库的连接

爬虫项目5[爬取拉钩网招聘数据]相关推荐

  1. scrapy爬虫实践之抓取拉钩网招聘信息(4)

    拉勾的302搞的我不心力憔悴,几乎失去了动力继续再研究拉勾爬虫-实际上,这种无力感很大程度上来源于知识结构的匮乏(尤其是基础方面)和毫无进展带来的挫败感. 于是乎去读基础教程<learning ...

  2. scrapy爬虫实践之抓取拉钩网招聘信息(2)

    今天遇到了一个百思不得其解的问题.我用xpath获取目标网页的divs,理论上来说,应该是把这个div下的所有div存进了列表里,但是语句却是这样写的 divs = response.xpath('/ ...

  3. python爬虫实例之爬取智联招聘数据

    这是作者的处女作,轻点喷.... 实习在公司时领导要求学习python,python的爬虫作为入门来说是十分友好的,话不多说,开始进入正题. 主要是爬去智联的岗位信息进行对比分析出java和pytho ...

  4. python 爬取拉钩招聘数据

    上一篇介绍在linux 搭建jupter lab,本文将介绍python数据接口的爬取以及提取建模分析的数据 导入依赖的包 import requests import time from urlli ...

  5. python 爬取拉钩网数据

    python 爬取拉钩网数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/blob/master/lagou/LaGouSpider.py # ...

  6. 结束 txt进程_Python多进程抓取拉钩网十万数据

    转载:Python多进程抓取拉钩网十万数据 准备 安装Mongodb数据库 其实不是一定要使用MongoDB,大家完全可以使用MySQL或者Redis,全看大家喜好.这篇文章我们的例子是Mongodb ...

  7. 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...

  8. BeautifulSoup爬取智联招聘数据

    BeautifulSoup爬取智联招聘数据 警告: 此项技术仅适用于练习,限制大量大规模爬取,在爬取中使用了个人cookie,请注意不要随意泄露,内含个人隐私信息! 如果过分爬取,会造成ip被封! 1 ...

  9. 利用python爬取天气预报_python实现天气爬虫——利用xpath爬取七天天气预报数据...

    python实现天气爬虫--利用xpath爬取七天天气预报数据 import pandas as pd import lxml import requests import csv from lxml ...

  10. python爬取拉勾网_python爬虫—爬取拉钩网

    本人自学python,小试牛刀,爬取广州片区拉钩网招聘信息.仅用于学习 参考文章:https://blog.csdn.net/SvJr6gGCzUJ96OyUo/article/details/805 ...

最新文章

  1. 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...
  2. 数据库连接池为什么要用threadlocal呢?不用会怎样?
  3. html2canvas 截图div_浏览器端网页截图方案详解
  4. phpstudy集成环境安装redis扩展
  5. Linux下的USB总线驱动 3
  6. MySQL数据库Raid存储方案
  7. java变量访问权限_JAVA成员变量的访问权限
  8. SharePoint Server 2010 一步一步从入门到精通
  9. webpack打包前端项目入门
  10. LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)
  11. zabbix agent监控主机配置
  12. [转]2020年2月份Github上最热门的开源项目,速来围观
  13. php vue seo,处理 Vue 单页面 SEO 的另一种思路
  14. Java图像识别车牌_车牌识别测试图片集(237幅车牌照片)(文件名均是车牌号)
  15. AHP层次分析法具体操作
  16. 王者荣耀改重复名,空白名最低战力查询助手微信小程序源码下载
  17. ContextCapture、EPS、CASS3D房地一体详细操作流程
  18. word如何让单页变横向
  19. 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)
  20. Apache Flink源码阅读环境搭建

热门文章

  1. 淘宝签名分析之一(反编译和利用frida快速找点)
  2. 63 Defi过后,人生第一次玩DAO----超级君【2020-08-22 2234】
  3. Win10双击任务栏的QQ图标就会自动隐藏的解决方案
  4. python调用openapi_eleme.openapi.python.sdk · PyPI
  5. DataGrip 保姆级教程 !
  6. 计算机网络特有的设备是什么,什么是网络设备(计算机入门知识,这些网络设备及工具你有必要知道)...
  7. php fpm 报错,php-fpm报错
  8. OC dyld750调用分析
  9. SteamVR自定义手部抓取姿势
  10. JQuery实现步骤条效果(上一步,下一步)