环境

  • python3.5
  • pip install selenium
  • phantomjs-2.1.1
  • pip install pyquery

代码

# -*- coding:utf-8 -*-# 防止print中文出错
import time
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030')from pyquery import PyQuery as pq
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities# 给phantomjs设置请求头
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36"
)
driver = webdriver.PhantomJS(desired_capabilities=dcap, executable_path=r"C:\Users\DELL\Desktop\Scrapy\phantomjs-2.1.1-windows\bin\phantomjs.exe")
driver.set_window_size(400, 100)# 模拟登陆
def login(login_url, username, password):print("begin login...")try:driver.get(login_url)driver.find_element_by_css_selector(".input_item.clearfix[data-propertyname='username'] input").send_keys(username)driver.find_element_by_css_selector(".input_item.clearfix[data-propertyname='password'] input").send_keys(password)driver.find_element_by_css_selector(".input_item.btn_group.clearfix[data-propertyname='submit'] input").click()except:print("login wrong...")# 模拟搜索
def search_position(position_name):print("search position {}".format(position_name))try:search_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search_input")))search_input.send_keys(position_name)search_btn = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "search_button")))search_btn.click()except:print("search wrong...")# 递归,逐页解析页面
def parse_html():print("begin parse html...")try:next_page_label = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".item_con_pager .pager_container span:last-child")))html = pq(driver.page_source)items = html("#s_position_list .item_con_list li.con_list_item.default_list").items()for item in items:print(item.attr("data-company"))print(item.attr("data-positionname"))print(item.attr("data-salary"))print(item("a.position_link").attr("href"))print("\n")next_page_label.click()time.sleep(3)parse_html()except Exception as e:print(str(e))if __name__ == "__main__":login_url = "https://passport.lagou.com/login/login.html?ts=1508055021059&serviceId=lagou&service=https%253A%252F%252Fwww.lagou.com%252F&action=login&signature=101A9F09764AD83E3E2A035A1506AF7A"username = "用户名"password = "用户密码"login(login_url, username, password)search_position("python")parse_html()

效果

【Python】模拟登陆并抓取拉勾网信息(selenium+phantomjs)相关推荐

  1. python爬虫代码房-Python爬虫一步步抓取房产信息

    原标题:Python爬虫一步步抓取房产信息 前言 嗯,这一篇文章更多是想分享一下我的网页分析方法.玩爬虫也快有一年了,基本代码熟悉之后,我感觉写一个爬虫最有意思的莫过于研究其网页背后的加载过程了,也就 ...

  2. Scrapy模拟登陆豆瓣抓取数据

    由于豆瓣网站是反爬虫的,因此要破解反爬虫和模拟登录,还有需要破解验证码. 1创建项目 (在pycharm中创建scrapy爬虫工程即可) scrapy  startproject douban 其中d ...

  3. Python网络爬虫之抓取订餐信息

    本文以大众点评网为例,获取页面的餐馆信息,以达到练习使用python的目的. 1.抓取大众点评网中关村附近的餐馆有哪些 import urllib.request import redef fetch ...

  4. c# 模拟登陆 webbrowser 抓取_《VR+电力——更换绝缘子培训》已登陆Pico Neo 2

    原标题:<VR+电力--更换绝缘子培训>已登陆Pico Neo 2

  5. python登录新浪微博抓取微博内容_python机器登陆新浪微博抓取数据

    使用python机器登陆新浪微博抓取数据 1.[代码][Python]代码 # import 这边需要注意的是只有一个rsa这个模块是需要install的,其他的都是内置 import re , ur ...

  6. pythonurllib新浪微博_python模拟登录新浪微博抓取数据(cookielib和urllib2).doc

    HYPERLINK "/article/python/22972.html" /article/python/22972.html python模拟登录新浪微博抓取数据(cooki ...

  7. python模拟登陆遇到重定向_python - scrapy模拟登陆知乎出现重定向无法登陆问题

    当我使用scrapy想进行模拟登陆, 然后抓取首页的问题和答案时, 一直显示重定向问题 pythonfrom scrapy.contrib.spiders import CrawlSpider, Ru ...

  8. python爬取拉勾网_(转)python爬取拉勾网信息

    学习Python也有一段时间了,各种理论知识大体上也算略知一二了,今天就进入实战演练:通过Python来编写一个拉勾网薪资调查的小爬虫. 第一步:分析网站的请求过程 我们在查看拉勾网上的招聘信息的时候 ...

  9. Python搭建代理池爬取拉勾网招聘信息

    先来看一张图了解下爬虫 实现功能 多线程爬取拉勾网招聘信息 维护代理 ip 池 搭建 node 服务器 Taro 使用 echarts 做数据分析 1.多线程爬取拉勾网招聘信息 Tip:涉及知识 1. ...

  10. Python爬虫项目:抓取智联招聘信息

    来自https://mp.weixin.qq.com/s/0SzLGqv2p0-IWSN3r8bOHA ''' Python爬虫之五:抓取智联招聘基础版 该文件运行后会产生一个代码,保存在这个Pyth ...

最新文章

  1. LeetCode-笔记-523. 连续的子数组和
  2. jquery实现截取pc图片_jquery 上传图片自由截取
  3. 推荐系统CTR预估学习路线:引入注意力机制
  4. New Year and Old Subsequence CodeForces - 750E(线段树+矩阵dp)2019南昌icpc网络赛Hello 2019
  5. php string常用函数
  6. 马上开课 | 临床基因组学数据分析实战助力解析Case,快速发表文章
  7. HTML学习笔记:让div在屏幕居中,图片在div里居中
  8. 《十四堂人生创意课》读书笔记,思维导图
  9. d3 v5 api Axes
  10. STM32系列单片机向量表和向量表重新定位
  11. 修改表和约束(alter语句)
  12. linux下thinkpad X1 carbon 2018 电源管理
  13. Excel数据分析从入门到精通(九)28个图表之KPI分析
  14. 【改写历史】--历史谁书写?谁将改写历史?
  15. Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation论文解析(视频超分)
  16. 国内免费接收回复Google Voice短信的方法
  17. C语言求两数最小公倍数
  18. U8引入账套提示:出现系统错误5 拒绝访问
  19. 44.驱动--设备树内的中断
  20. (转载)【笨木头Lua专栏】基础补充18:Lua的模块编写与module函数

热门文章

  1. hdoj 瞬间移动 5698(逆元)
  2. 超长正整数的加法(酷勤网)
  3. 输入PM2.5的值,输出当日的空气质量
  4. JAVA自动装箱和拆箱功能是把双刃剑
  5. vue导出word文档
  6. 其他笔记 - matlab代码转换为python代码(SMOP、numpy)
  7. Discuz的sc 和tc版本有什么区别
  8. c语言报告收获,c语言学习心得体会(最新整理)
  9. kubernetes kind类型之Deployment
  10. Linux 中的 owner,group,others