今天在公司又听同事说到相亲的事,然后想爬取上海的用户信息看看,

先查看了一下电脑版的百合网,发现必须要登录,数据一次性只能拿取6-8条,然后在查看手机端,也是必须要登录,数据通过拿取json文件,可以一次性GET方式拿取100条,还可以通过设置参数,设置筛选条件,所以决定使用手机端来爬

先用scrapy简单的尝试,发现数据和自己设置的条件是不一样的,检测过后,发现是假数据!!!想了一会,要使用scrapy比较麻烦,最后使用selenium 加PhantomJS来完成数据爬取,然后存到mongodb数据库

from selenium import webdriver
import pymongo
import json
import time
import re

class Xiangq(object):
    def __init__(self):
        self.client = pymongo.MongoClient("localhost", 27017)
        # 获得数据库test1
        self.db = self.client.baihe
        # 获得集合stu
        self.stu = self.db.baihe
        # 调用环境变量指定的PhantomJS浏览器创建浏览器对象
        # driver = webdriver.PhantomJS()

# /home/python/Desktop/chromdriver

#self.lis=                        ["cityChn","provinceChn","headPhotoUrl","age","gender","height","userID","isCreditedById5","identitySign","nickname","education","educationChn","isCreditedByMobile","incomeChn","income","housing","car","photosNumber","familyDescription","prefer","headPhotoUrl_100_100","headPhotoUrl_120_150"]
        driver = webdriver.Chrome(executable_path='/home/python/Desktop/chromdriver/chromedriver')
        driver.get("http://i.baihe.com/#ctrl=register&act=login")
        time.sleep(5)
        # 登录帐号
        driver.find_element_by_id("vLoginTxtAcc").send_keys('帐号')
        driver.find_element_by_id("vLoginTxtPwd").send_keys('密码')
        driver.find_element_by_id("vLoginDoLogin").click()

# action.sendKeys(Keys.ENTER).perform();
        # driver.get("")
        time.sleep(0.5)
        window_1 = driver.current_window_handle
        js = 'window.open();'
        driver.execute_script(js)

# print(driver.page_source)
        windows = driver.window_handles

for handle in windows:

if handle != window_1:
                driver.switch_to.window(handle)
                self.run(driver)

def run(self,driver):
        for i in range(1,56):
            # i = 1
            driver.get(
                'http://i.baihe.com/search/search?traceID=1&systemID=2&params=%7B%22appId%22%3A%221%22%2C%22channel%22%3A%22appstore%22%2C%22device%22%3A%22android%22%2C%22apver%22%3A%225.8.0%22%2C%22accessToken%22%3A%2212546879%22%2C%22IMEI%22%3A%22%22%2C%22minAge%22%3A%2218%22%2C%22maxAge%22%3A%2225%22%2C%22minHeight%22%3A%22155%22%2C%22maxHeight%22%3A%22175%22%2C%22city%22%3A%22%22%2C%22province%22%3A%228631%22%2C%22education%22%3A%22%22%2C%22income%22%3A%22%22%2C%22page%22%3A%22'+str(i)+'%22%2C%22pageSize%22%3A%2260%22%7D'
            )

data = driver.page_source
            # print(data)
            data = re.match(r""".*?({"code":200.*}})</body></html>""",data).group(1)
            # print(data)
            data = json.loads(data)
            data = data['data']['result']

# print(data)

dict_ = {}
            time.sleep(1)
            for a in data:
                for i in self.lis:
                    if i in a:
                        print(a)

dict_[i] = a[i]

# 去重处理

self.stu.update({'userID' : dict_['userID']}, dict(dict_), True)

def main():
    xiangq = Xiangq()
    # xiangq.run()

if __name__ == '__main__':
    main()

使用selenium爬取百合网相关推荐

  1. 使用Scrapy、PhantomJS和Selenium爬取知网文献摘要

    使用Scrapy.PhantomJS和Selenium爬取知网文献摘要.以下例子用于爬取"医药卫生科技"类文献摘要. 1.使用Scrapy创建项目 scrapy startproj ...

  2. python抓取文献关键信息,python爬虫——使用selenium爬取知网文献相关信息

    python爬虫--使用selenium爬取知网文献相关信息 写在前面: 本文章限于交流讨论,请不要使用文章的代码去攻击别人的服务器 如侵权联系作者删除 文中的错误已经修改过来了,谢谢各位爬友指出错误 ...

  3. 使用selenium爬取当当网图书

    1.目标 利用Selenium抓取当当网图书并用正则表达式获取到得到商品的图片.名称.价格.评论人数信息. 2.开发环境 python2.7 +windows10 +pycharm 3.页面分析 如图 ...

  4. Selenium爬取MOOC网课程信息

    近期在写一份关于大数据相关的作业,需要搜索近年来市面上关于大数据的书籍信息和课程信息.其中一位同学负责在当当网上爬取书籍信息,我就负责爬取MOOC网的课程信息. 刚开始的时候,以为MOOC网作为一个公 ...

  5. java+selenium爬取知网数据

    使用selenium工具爬取知网相关数据,思路:根据几个关键词搜索出相关的内容,然后爬取列表中所有论文的访问链接. 注意:直接爬取的链接是不能用的,需要自己拼接一下.具体看代码.新手,代码写的有点乱. ...

  6. Python 如何利用selenium爬取同花顺网上市公司2020一季度利润报表

    写这篇文章之前我用python爬取了东方财富网上市公司的利润报表,闲来蛋疼我又写了一个爬同花顺官网上面的上市公司利润报表,这次我用的是requests包,下面碰到一些问题记录一下,发送请求前要构造请求 ...

  7. Python爬取知网信息——Python+selenium爬取知网信息(文献名,作者,来源,发表日期,文献类型)

    # -*- coding: utf-8 -*- #时间:2019.5.1 #运行环境Python 3.* ''' 1.运行此代码前需要先下载Chrome浏览器,去百度搜索下载 2.我是利用seleni ...

  8. python+selenium爬取某网专利数据

    记录一下爬某网专利数据经历~~ 新的这个某网页面,检索数据是在主页面嵌套了一个iframe页面,直接通过页面爬的话,还不能直接拿到数据,本次经历主要有以下几个麻烦点: 1.搜索的结果,最多只有300页 ...

  9. selenium爬取珍爱网用户信息

    近期接到一个任务,爬取珍爱网上的用户信息,这个对单身的我来说瞬间提起了兴趣,这有可能是我脱单的开始,哼哼,不装逼了,先来看看怎么帮我脱单,嘻嘻嘻 import requests import time ...

  10. 使用Selenium爬取网站表格类数据

    本文转载自一下网站:Python爬虫(5):Selenium 爬取东方财富网股票财务报表 https://www.makcyun.top/web_scraping_withpython5.html 需 ...

最新文章

  1. 人脸识别算法_格灵深瞳在人脸识别算法测试(FRVT)中斩获全球第一
  2. 事务、视图、索引、备份、还原
  3. python的socket编程执行顺序_Python篇-Socket网络编程
  4. Ajax 生成流文件下载 以及复选框的实现
  5. AX7 Form继承接口
  6. js ws 状态_node.js中ws模块创建服务端和客户端,网页WebSocket客户端
  7. Linux下利用脚本全自动搭建论坛
  8. 44.用Tornado实现web界面爬虫
  9. java 符_java运算符
  10. SRv6技术课堂(一):SRv6概述
  11. 小米手机测试代码电池测试代码
  12. 建立U盘免疫病毒文件
  13. win10系统安装virtualbox虚拟机win7系统过程记录
  14. 很多人看都哭了,不信你不哭
  15. vue-live2d 看板娘
  16. Total Uninstall 6安装使用
  17. 弱网测试工具使用--web/pc/app
  18. 在线ssd测试软件,AS SSD Benchmark测试
  19. 詹姆斯高斯林_詹姆斯·高斯林(James Gosling)加入RCDb顾问委员会
  20. makefile中一些符号的含义

热门文章

  1. vt功能对计算机有影响吗,电脑开vt有什么坏处
  2. 网络安全中非常好用的webshell检测工具!
  3. c3p0-0.9.1.2.jar与c3p0-0.9.5.2.jar
  4. 浅谈数据库用户表结构设计和第三方登录
  5. 必看,关于sql的慢查询及解决方案
  6. 流量+安全 平安WiFi卡位入口战略
  7. javascript之键盘事件
  8. UOJ449 集训队作业2018 喂鸽子
  9. 1g等于多少mb计算机网络,1g等于多少mb 硬盘容量详细介绍
  10. Linux:软硬链接