Day02:requests请求库,selenium请求库
一 requests请求库爬取豆瓣电影信息
- 请求url https://movie.douban.com/top250
- 请求方式 GET- 请求头 user-agent cookies
import requests import re def get_page(url):response=requests.get(url)return responsedef parse_index(html):movie_list = re.findall('<div class="item">.*?<em class="">(.*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?导演: (.*?)主演: (.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价</span>.*?<span class="inq">(.*?)</span>',html,re.S)return movie_listdef save_data(movie):top,m_url,name,daoyan,actor,year_type,point,commit,desc=movieyear_type=year_type.strip('\n')data=f''' ===============================电影排名:{top}电影url:{m_url}电影名称:{name}电影导演:{daoyan}电影主演:{actor}电影类型:{year_type}电影评分:{point}电影评论:{commit}电影简介:{desc}===============================\n''' print(data)with open('douban_top250.txt','a',encoding='utf-8')as f:f.write(data)print(f'电影:{name}写入成功...')if __name__ == '__main__':num=0for line in range(10):url=f'https://movie.douban.com/top250?start={num}&filter='num+=25print(url)index_res=get_page(url)movie_list=parse_index(index_res.text)for movie in movie_list:save_data(movie)
二 selenium请求库 1、什么是selenium? 期初是一个自动化测试工具,原理是驱动浏览器执行一些一定好的操作。爬虫本质上就是模拟浏览器,所以可以使用它来做爬虫。
2、为什么要使用selenium?
优点:
- 执行js代码
- 不需要分析复杂的通信流程
- 对浏览器做弹窗、下拉等操作
- ***** 获取动态数据
- *** 破解登录验证
缺点:
- 执行效率低
3、安装与使用
1. 安装selenium请求库:
pip3 install selenium
2. 必须安装浏览器
"谷歌"或者火狐
3.安装浏览器驱动
http://npm.taobao.org/mirrors/chromedriver/2.38/
windows:
下载win32驱动
selenium请求库爬虫京东网进程
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait import timeimport time driver= webdriver.Chrome(r'C:\Users\HP\Desktop\chromedriver.exe') try:driver.get('https://www.jd.com/')wait = WebDriverWait(driver, 10)input_tag = wait.until(EC.presence_of_element_located((By.ID, 'key')))time.sleep(5)input_tag.send_keys('公仔')input_tag.send_keys(Keys.ENTER)time.sleep(20) finally:driver.close()
selenium请求库爬虫登录百度
from selenium import webdriver from selenium.webdriver.common.keys import Keys import timeimport time driver= webdriver.Chrome(r'C:\Users\HP\Desktop\chromedriver.exe') try:driver.implicitly_wait(10)driver.get('https://www.baidu.com/')time.sleep(5)login_link = driver.find_element_by_link_text('登录')login_link.click()time.sleep(1)user_login = driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn')user_login.click()time.sleep(1)# 3、find_element_by_class_nameuser = driver.find_element_by_class_name('pass-text-input-userName')user.send_keys('1847702753@qq.com')# 4、find_element_by_namepwd = driver.find_element_by_name('password')pwd.send_keys('*****')submit = driver.find_element_by_id('TANGRAM__PSP_10__submit')submit.click()login_link = driver.find_element_by_partial_link_text('登')login_link.click()login2_link = driver.find_element_by_css_selector('.tang-pass-footerBarULogin')login2_link.click()div = driver.find_elements_by_tag_name('div')print(div)time.sleep(20) finally:driver.close()
转载于:https://www.cnblogs.com/zhoujie333/p/11122936.html
Day02:requests请求库,selenium请求库相关推荐
- day02 requests请求库爬取豆瓣电影信息+selenium请求库
一. requests请求库爬取豆瓣电影信息 - 请求url http://movie.douban.com/top250 - 请求方式 GET - 请求头 user-agent cookies ...
- dio设置自定义post请求_基于dio库封装flutter项目的标准网络框架
网络框架是每个应用的基石,封装一个好的网络框架不仅是项目的一个好的开始,并且直接影响到随后项目的稳定性和可扩展性.在移动开发的各个端都有非常赞的网络请求基础框架,比如Android的okhttp库.s ...
- SWR 用于数据请求的 React Hooks 库
SWR 用于数据请求的 React Hooks 库 "SWR" 这个名字来自于 stale-while-revalidate:一种由 HTTP RFC 5861 推广的 HTTP ...
- 基于猿题库网络请求再次封装
下载地址: https://github.com/weibo1314/WB_NeiApiManager WB_NetApiManager 介绍 ===================== 最近闲来无 ...
- 爬虫之requests模块发送post请求
爬虫之requests模块发送post请求 思考:哪些地方我们会用到POST请求? 登录注册( 在web工程师看来POST 比 GET 更安全,url地址中不会暴露用户的账号密码等信息) 需要传输大文 ...
- pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法
在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...
- 爬虫一 requests库与BeautifulSoup库、HTML
安装requests库 方法是:在Mac电脑里打开终端软件(terminal),输入pip3 install requests,然后点击enter即可:Windows电脑里叫命令提示符(cmd),输入 ...
- Python网络编程:使用requests.post发送POST请求
Python网络编程:使用requests.post发送POST请求 在Python中,requests是一个强大的库,它可以用于发送HTTP请求并且处理响应.requests.post()函数是这个 ...
- 使用 python requests 模块发送 http 请求及接收响应
内容概要 如何构建GET 与 POST request 请求消息 对 request 的header , query string, message body 定制化 http header参数 co ...
最新文章
- hung-yi lee_p22_无监督学习:词嵌入
- stella forum v1.2 用例分析
- 实用ExtJS教程100例-009:ExtJS Form无刷新文件上传
- awksed story
- Enterprise Library - Security Application Block 学习手册(最新版) Part 1
- java web文件拖拽上传文件_Java实现拖拽文件上传dropzone.js的简单使用示例代码
- oracle 自定义比较函数
- 安装visio2016出现无法安装
- linux 开启ahci_AHCI (简体中文)
- self.button.clicked.connect的用法
- 谈谈Fragment的用法之Fragment实现Tab切换中的那些事
- python获取本机IP地址
- vue+weui 手机端项目
- STM32之定时器详解
- PA,MIOU,FWIOU
- 怎么将手机里的PDF文件转成图片
- C#窗体控件—pictureBox使用
- docker进入容器的方法
- 大数据期末课程设计实验案例:网站用户行为分析
- 【Datawhale可解释性机器学习笔记】预备知识学习
热门文章
- 【深度优先搜索】计蒜客:等边三角形
- 【java笔记】模拟B/S服务器
- PYTHON 笔记:函数的定义和调用
- HEVC码流简单分析
- cmd批量修改文件名 增加文字_Windows批处理脚本:以批量修改文件名为例
- mysql 储存过程放到哪_MySQL储存过程
- Python pip install修改默认下载路径
- Incorrect username or password (access token)
- Mybatis数据库连接报错:对实体 “characterEncoding“ 的引用必须以 ‘;‘ 分隔符结尾
- MySQL基础命令中文解析