#    Python爬虫初步了解import requests #在配置了环境下cmd启用pip install requests否则到安装路径cmd再启用代码下载
#引入requests库
res = requests.get('http://book.zongheng.com/chapter/837954/55458762.html')#这边放入了一个小说网址
# response.status_code 检查请求是否成功
#response.content 把response对象转换为二进制数据
# response.text 把response对象转换为字符串数据
#response.encoding 定义responsse对象的编码print(res.status_code)
res.encoding='utf-8'#设置对象编码格式
'''输出内容200'''
#100 继续提出请求
#200 成功
#305 应适应代理访问
#403 禁止访问
#503 服务不可用
#...............................................................................
#content适用于图片资源
#text 适用于文字资源
res = requests.get('https://res.pandateacher.com/2018-12-18-10-43-07.png')pic=res.contentphoto = open('ppt.jpg','wb')#新建了一个文件ppt.jpg 图片内容需要以二进制wb读写photo.write(pic)photo.close()#关闭文件
'''输出文件文件运行目录下生成了一个ppt.jpg文件'''
#...............................................................................
#Beautifulsoup的使用 提取数据from bs4 import BeautifulSoup #windows进入cmd 使用pip install beautifulsoup4 才能成功导包res = requests.get('http://book.zongheng.com/chapter/837954/55458762.html')
bs=BeautifulSoup(res.text,'html.parser')#第一个参数为str第二个参数为解析器
item=bs.find('div',class_='readerPageWrap')#find('标签',class_='class名字')获取首个符合要求的参数  find_all('标签',class_='class名字')获取所有符合要求的参数
tg=item.find(class_='content')#Tag.find() Tag.find_all() 拿取Tag中的Tag作用效果同上
print(tg.text) # Tag.text 将Tag转化为文本 Tag['属性名(例如:href)'] 拿取该属性值 '''输出内容此处省略(小说文本...)'''
#...............................................................................
#NetWork
'''
进入网站后 Ctrl+shift+i
打开开发者模式进入NetWork
查看第0个请求查看里面的Response发现有的网站在第0个请求全部加载完了数据(老化一点的网站)
有的则不是
而我们上面写的request.get 以及 Beauifulsoup正是获取第0个请求'''
#XHR
'''
现在网站大部分用到ajax技术 其意义就是不跳转页面加载数据 有时我们需要爬取的数据就得去Filter里面的XHR里面查看
点击Heades查看RequestUrl通过该网址爬取数据 该网址数据为json格式因此要解析该json数据'''#任贤齐XHR请求urlurl='https://c.y.qq.com/soso/fcgi-bin/client_search_cp'#XHR中Headers请求url中?前面的路径
for x in range(5):xxx={#heades里面Parameters的的参数'ct': '24','qqmusic_ver': '1298','new_json': '1','remoteplace': 'txt.yqq.song','searchid': '59914188230000239','t': '0','aggr': '1','cr': '1','catZhida': '1','lossless': '0','flag_qc': '0','p': str(x+1),'n': '10','w': '任贤齐','g_tk_new_20200303': '5381','g_tk': '5381','loginUin': '0','hostUin': '0','format': 'json','inCharset': 'utf8','outCharset': 'utf-8','notice': '0','platform': 'yqq.json','needNewCode': '0 ' }rsmusic=requests.get(url,params=xxx)#带参请求json_music=rsmusic.json() #解析json数据list_music=json_music['data']['song']['list'] #解析json格式for music in list_music:print(music['name'])#获取歌名'''输出内容天涯
伤心太平洋
流着泪的你的脸
心太软
我是一只鱼
还有我
死不了
任逍遥
只爱你一个人
兄弟
兄弟
浪花一朵朵
小雪
花太香
哭个痛快
春天花会开
橘子香水
沧海一声笑
桥边姑娘
依靠
对面的女孩看过来
还有我
心太软
给你幸福
爱的路上只有我和你
少年游
烛光
很受伤
星语心愿
兄弟
飞鸟
天使也一样
别傻了
呢喃
爱江山更爱美人
花好月圆夜
赶不走
风云决
伤心太平洋 + 心太软 + 我是一只鱼 + 对面的女孩看过来
朋友的酒
诛仙 我回来
两极
你是我老婆
一个人
天长地久
水晶
把悲伤留给自己
一个男人的眼泪
心情车站
心肝宝贝'''#...............................................................................
#cookies 登录后储存的登录信息url = ' https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php'#加请求头 前面有说过加请求头是为了模拟浏览器正常的访问 避免被反爬虫
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}#把有关登录的参数封装成字典 赋值给data
data = {
'log': 'spiderman',  #写入账户
'pwd': 'crawler334566',#写入密码
'wp-submit': '登录',
'redirect_to': 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn',
'testcookie': '1'
}#用requests.post发起请求 放入参数:请求登录的网址 请求头和登录参数 然后赋值给login_in
login_in = requests.post(url,headers=headers,data=data)#提取cookies的方法:调用requests对象(login_in)的cookies属性获得登录的cookies并赋值给变量cookies
cookies = login_in.cookies#我们想要评论的文章网址
url_1 = 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-comments-post.php'#把有关评论的参数封装成字典
data_1 = {
'comment': input('请输入你想要发表的评论:'),
'submit': '发表评论',
'comment_post_ID': '13',
'comment_parent': '0'
}#用requests.post发起发表评论的请求 放入参数:文章网址 headers 评论参数 cookies参数 赋值给comment
#调用cookies的方法就是在post请求中传入cookies=cookies的参数
comment = requests.post(url_1,headers=headers,data=data_1,cookies=cookies)#打印出comment的状态码 若状态码等于200 则证明我们评论成功
print(comment.status_code)'''输出内容<Response [200]>'''
#...............................................................................
#Session 会话保存cookies
import json#这边导入一下json的包session=requests.session()url = ' https://wordpress-edu-3autumn.localprod.oc.forchange.cn/wp-login.php'#加请求头 前面有说过加请求头是为了模拟浏览器正常的访问 避免被反爬虫
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}#把有关登录的参数封装成字典 赋值给data
data = {
'log': 'spiderman',  #写入账户
'pwd': 'crawler334566',#写入密码
'wp-submit': '登录',
'redirect_to': 'https://wordpress-edu-3autumn.localprod.oc.forchange.cn',
'testcookie': '1'
}#...............................................................................
#写入保存cookie
session.post(url, headers=headers, data=data)#把cookies转化成字典
cookies_dict = requests.utils.dict_from_cookiejar(session.cookies)#打印cookies_dict
print(cookies_dict)#调用json模块的dumps函数 把cookies从字典再转成字符串
cookies_str = json.dumps(cookies_dict)
print(cookies_str)#创建名为cookies.txt的文件 以写入模式写入内容
f = open('cookies.txt', 'w')#把已经转成字符串的cookies写入文件
f.write(cookies_str)#关闭文件
f.close()#...............................................................................
#读取cookie
cookies_txt = open('cookies.txt', 'r')#读取文件
cookies_dict = json.loads(cookies_txt.read())#字符串转字典
cookies = requests.utils.cookiejar_from_dict(cookies_dict)#转cookie格式
session.cookies =cookies#...............................................................................
#selenium 浏览器自动工作 selenium所解析提取的 是Elements中的所有数据 而BeautifulSoup所解析的则只是Network中第0个请求的响应
#用selenium把网页打开 所有信息就都加载到了Elements那里 之后 就可以把动态网页用静态网页的方法爬取了
#http://npm.taobao.org/mirrors/chromedriver/ 对应Chrome版本 下载ChromeDriver放到python安装目录下
import time
import sys
for i in sys.path:print(i)#拿到python 安装路径from selenium import webdriver #windows cmd输入 pip install selenium
driver =webdriver.Chrome() #设置引擎为Chrome 并打开一个浏览器
driver.get('https://localprod.pandateacher.com/python-manuscript/hello-spiderman/')#打开网址
time.sleep(3)#睡眠3秒#selenium提取数据
label = driver.find_element_by_tag_name('label')#解析网页并提取第一个<lable>标签
print(label.text)#打印label的文本
driver.close()#关闭浏览器'''
find_element_by_tag_name:通过元素的名称选择
# 如<h1>你好</h1>
# 可以使用find_element_by_tag_name('h1')find_element_by_class_name:通过元素的class属性选择
# 如<h1 class="title">你好</h1>
# 可以使用find_element_by_class_name('title')find_element_by_id:通过元素的id选择
# 如<h1 id="title">你好</h1>
# 可以使用find_element_by_id('title')find_element_by_name:通过元素的name属性选择
# 如<h1 name="hello">你好</h1>
# 可以使用find_element_by_name('hello')#以下两个方法可以提取出超链接find_element_by_link_text:通过链接文本获取超链接
# 如<a href="spidermen.html">你好</a>
# 可以使用find_element_by_link_text('你好')find_element_by_partial_link_text:通过链接的部分文本获取超链接
# 如<a href="https://localprod.pandateacher.com/python-manuscript/hello-spiderman/">你好</a>
# 可以使用find_element_by_partial_link_text('你')
'''
#.send_keys() #模拟按键输入 自动填写表单 .click() #点击元素    浏览器自动工作
#...............................................................................
#定时
import schedule
import time
#引入schedule和time模块
def job():print("I'm working...")schedule.every(2).seconds.do(job)#每2s执行一次job()函数'''schedule.every(10).minutes.do(job)       #部署每10分钟执行一次job()函数的任务
schedule.every().hour.do(job)            #部署每×小时执行一次job()函数的任务
schedule.every().day.at("10:30").do(job) #部署在每天的10:30执行job()函数的任务
schedule.every().monday.do(job)          #部署每个星期一执行job()函数的任务
schedule.every().wednesday.at("13:15").do(job)#部署每周三的13:15执行函数的任务'''while True:schedule.run_pending()#装备执行time.sleep(1)#按秒来检查
#http://www.weather.com.cn/weather/101280601.shtml天气预报网址
#可以配合定时 爬虫 加邮箱 做一个 定时爬取天气邮箱发送天气数据

python爬虫初步了解 定时任务 以及浏览器自动工作相关推荐

  1. Python爬虫教程-10-UserAgent和常见浏览器UA值

    Python爬虫教程-10-UserAgent和常见浏览器UA值 有时候使用爬虫会被网站封了IP,所以需要去模拟浏览器,隐藏用户身份, UserAgent 包含浏览器信息,用户身份,设备系统信息 Us ...

  2. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  3. Python爬虫初步

    Python爬虫初步 这里要介绍一下urllib2这个模块 作用:主要是用于打开url. 核心方法: - urlopen(url[, data][, timeout]) - 打开一个url,该url参 ...

  4. 买不到口罩怎么办?Python爬虫帮你时刻盯着自动下单!| 原力计划

    作者 | 菜园子哇 编辑 | 唐小引 来源 | CSDN 博客 马上上班了,回来的路上,上班地铁上都是非常急需口罩的. 目前也非常难买到正品.发货快的口罩,许多药店都售完了. 并且,淘宝上一些新店口罩 ...

  5. python爬虫怎么挣钱_买不到口罩怎么办?Python爬虫帮你时刻盯着自动下单!| 原力计划...

    作者 | 菜园子哇编辑 | 唐小引来源 | CSDN 博客马上上班了,回来的路上,上班地铁上都是非常急需口罩的.目前也非常难买到正品.发货快的口罩,许多药店都售完了.并且,淘宝上一些新店口罩库存写着非 ...

  6. 买不到口罩怎么办?Python 爬虫帮你时刻盯着自动下单!| 原力计划

    作者 | 菜园子哇 责编 | 唐小引 头图 | 下载自东方 IC 出品 | CSDN 博客 马上上班了,回来的路上,上班地铁上都是非常急需口罩的. 目前也非常难买到正品.发货快的口罩,许多药店都售完了 ...

  7. python 模拟浏览器selenium_从零开始写Python爬虫 --- 3.1 Selenium模拟浏览器

    本来说好要写Mechanize模拟浏览器的,结果一看居然只支持2.x版本的Python,而且已经长久没有更新维护了,本着学新不学旧的原则,我决定跳过他,直接开学Selenium(其实就是我懒,逃 Se ...

  8. Python爬虫——Selenium安装配置FireFox浏览器

    Selenium安装配置FireFox浏览器 前置需求: 1. 下载安装FireFox浏览器和Geckodriver 1.1 Windows下载 1.2 Linux下载 2. 使用Selenium调用 ...

  9. python爬虫之selenium,谷歌无头浏览器

    python爬虫之selenium和PhantomJS 主要的内容 lenium hantomjs 无头浏览器 的懒加载 一 什么是selenium? 介绍 它是python中的一个第三方库,对外提供 ...

最新文章

  1. 多个线程访问共享对象和数据的方式
  2. ACM模板——并查集
  3. oracle的split函数
  4. Golang + Goland环境配置 + Goland破解
  5. java main是多线程的吗_Java多线程之线程及其常用方法
  6. The whole Fiori application is wrapped in a big shell xml view
  7. 新春大吉,2017 Make .NET Great
  8. 避免缓冲区溢出的方法
  9. 学Python Web开发框架到什么程度可以找到开发的工作?
  10. 程序员在简书|努力奔跑
  11. 炫彩与WKE浏览器交互
  12. 三星智能共享计算机软件,Samsung Smart View
  13. 基于VHDL的vivado2017.4使用教程
  14. 51单片机——串口通信
  15. 科大讯飞批量语音转文字
  16. 《未来简史》--读后感
  17. 如何快速绘制一个等边三角形呢?
  18. 重新编译CDH版本hadoop报错:Non-resolvable parent POM: Could not transfer artifact com.
  19. PADS(7)——在PADS Layout一次性添加泪滴
  20. RAC的并发操作与分布式锁DLM

热门文章

  1. mod格式android,影之诗安卓版卡面mod改动手把手教程
  2. 微商怎么在百度引流?微商百度引流怎么做?
  3. 如何利用Docker、AWS和深度学习伪装成一个艺术家
  4. ie浏览器主页被毒霸锁定,解决
  5. 专访罗永浩 锤子手机为精英服务屌丝走开 成为下一个苹果
  6. 【SpringBoot框架篇】4.集成jta-atomikos实现分布式事务
  7. 网站弹窗公告一天弹窗一次源码简单好看
  8. Dropout 层应该加在什么地方?
  9. 浅谈计算机辅助数学教学论文,论文浅谈对计算机辅助数学教学的认识精选.doc...
  10. SwaggerUI初探