selenium和爬虫之间的关联
在爬虫程序中可以使用selenium模拟浏览器登录来爬取数据
优点:非常便捷的捕获到任意形式动态加载出来的数据,可见即可得
缺点:爬取数据的效率低
使用selenium爬取药监总局的数据
from lxml import etree
import time
bro = webdriver.Chrome()
url = 'http://125.35.6.84:81/xk/'
bro.get(url)
#爬取药监总局中前三页的数据
time.sleep(2)
#获取当前浏览器显示的页面源码数据
page_text = bro.page_source#该属性可以返回当前页面所有被加载出来的页面源码数据
#列表:存放前三页的页面源码数据
all_page_text = [page_text]
for i in range(3):
#进行下一页按钮的定位且对其进行点击
a_tag = bro.find_element_by_xpath('//*[@id="pageIto_next"]')
a_tag.click()
time.sleep(1)
all_page_text.append(bro.page_source)
for page_text in all_page_text:
#解析企业名称(动态加载的数据)
tree = etree.HTML(page_text)
li_list = tree.xpath('//*[@id="gzlist"]/li')
for li in li_list:
name = li.xpath('./dl/@title')[0]
print(name)
time.sleep(1)
bro.quit()
12306的模拟登录
url:https://kyfw.12306.cn/otn/login/init
登录12306网站会后有图片验证码,在输用户名和密码后,需要将整个页面截图保存到本地,然后解析出验证图片所在的相对位置,将图片验证码裁剪下来,使用超级鹰打码平台识别。
#超级鹰的示例代码
#!/usr/bin/env python
# coding:utf-8
import requests
from hashlib import md5
class Chaojiying_Client(object):
def __init__(self, username