爬虫之豆瓣登录界面

在对豆瓣的登录界面进行爬取的时候会发现,豆瓣的登录界面并不是第一次就加载出来的,而是在首次请求过后进行了二次请求。因此我们用普通的静态方式是无法获取有关登录界面的任何信息的。所以就需要使用selenium来帮助获取动态。
豆瓣的登录界面可以明显看出是二次请求。
在这里插入图片描述

import time,requests
from selenium import webdriver
from lxml import etree
"""豆瓣的登录页面是在主页加载出来之后进行的二次加载,因此我们要抓取到链接之后进行二次访问"""
base_url = 'https://www.douban.com/'
headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0'}
response = requests.get(url=base_url,headers=headers).content.decode('utf-8')
contents = etree.HTML(response)
#通过观察可以发现登录的API接口就是iframe 标签中的src属性
iframe = contents.xpath('.//iframe[@style]/@src')[0]

# 下面使用selenium进行二次请求
driver = webdriver.PhantomJS(executable_path=r'C:\python3.5.3\phantomjs-2.1.1-windows\bin\phantomjs.exe')
driver.get('https:'+iframe)
# driver.save_screenshot('douban.png')
# print(driver.page_source)
driver.find_element_by_class_name('account-tab-account').click()
driver.find_element_by_id('username').send_keys('1xxx')
driver.find_element_by_id('password').send_keys('xxx')
# 源代码中登录按钮有两个类名,如果寻找‘btn btn-account’这个类名不会寻找到,可以只寻找一个类名
#先休眠3秒然后截屏看一下走到什么程度
time.sleep(3)
driver.save_screenshot('douban5.png')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值