当前位置: 首页 > wzjs >正文

佛山做网站公司seo网站推广优化就找微源优化

佛山做网站公司,seo网站推广优化就找微源优化,女与男做那个的视频网站,wordpress的restful目录 一、需要登录的爬虫 二、pyppeteer与requests库结合 1、cookie和session 三、其他 1、绝对网址和相对网址 2、sleep函数 一、需要登录的爬虫 在众多种类的页面中,不同的页面有不同的功能,有的是进行展示的,而有的则是登录类的。在…

目录

一、需要登录的爬虫

二、pyppeteer与requests库结合

1、cookie和session

三、其他

1、绝对网址和相对网址

2、sleep函数


一、需要登录的爬虫

在众多种类的页面中,不同的页面有不同的功能,有的是进行展示的,而有的则是登录类的。在面对登录页面时,我们需要结合 Python 中的自动化工具(如 Pyppeteer)来进行输入、点击等操作

我们下面写一个代码,在里面使用一些模仿点击,输入等操作的函数:

import pyppeteer as pyp
import asyncioasync def WeiHTML(page) :await page.setUserAgent('Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 safari/537.36')await page.evaluateOnNewDocument(' () => Object. defineProperties (navigator, { webdriver: {get:()=> false} })}')
#以上是反反爬虫的async def DengLu(dengluURL) :width = 1400height = 800#定义了打开的浏览器的窗口的大小browser = await pyp.launch(headless = False , executablePath=r'C:\Users\23639\AppData\Local\Google\Chrome\Application\chrome.exe' , args = [f"--window-size={width} , {height}"])#启动page = await browser.newPage()#打开一个新的页面await WeiHTML(page)#打开页面后需要反反爬虫伪装一下await page.setViewport({"width" : width , "height" : height})#一切就绪后,设置一下一会想打开的窗口的大小await page.goto(dengluURL)#根据url打开页面element = await page.querySelector("#lUsername")await element.type("XXXXXXXXXXX")element = await page.querySelector("#lPassword")await element.type("PASSWORD")#以上四行是用来自动输入账号和密码的element = await page.querySelector(".wall-sub-btn")await element.click()#自动点击登录的await page.waitForSelector(".nav_1" , timeout = 30000)#登录后看看有没有标识性的tag的classawait browser.close()async def main():url = "A_URL"await DengLu(url)asyncio.run(main())

注:里面的#lUsername等类名和id名,都是需要在对应的界面上鼠标到达按钮,或者输入框上面,右键查看得到的

二、pyppeteer与requests库结合

在前面我们了解到,requests和pyppeteer各有利弊,requests的速度很快,但是如果面对登录等操作就比较麻烦(需要抓包),pyppeteer虽然可以比较简单的处理这种登录操作,但是他的速度很慢,所以我们就可以将二者结合,实现比较高效的代码

(注:这种方法只适合登录后的页面都不是JavaScript生成的动态网页)

下面我们用一个代码来实现:

import pyppeteer as pyp
import time     #添加延迟用的
import asyncio      #异步编程用的
import requests     #发送HTTP请求
from bs4 import BeautifulSoup   #解析HTML文档,以及进行查找async def WeiHTML(page) :await page.setUserAgent('Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 safari/537.36')await page.evaluateOnNewDocument('() => { Object.defineProperty(navigator, "webdriver", { get: () => false }); }')
#以上是模拟浏览器的请求头async def DengLu(url) :width = 1400height = 800#一会用于打开的浏览器的窗口的大小俩参数browser = await pyp.launch(headless = False , executablePath=r'C:\Users\23639\AppData\Local\Google\Chrome\Application\chrome.exe' , args = [f"--window-size={width} , {height}"])#启动浏览器page = await browser.newPage()#打开新页面await WeiHTML(page)#在新页面上用模拟请求头来访问await page.setViewport({"width" : width , "height" : height})#打开页面的窗口大小await page.goto(url)#去指定的网站time.sleep(2)element = await page.querySelector("#login-account-name")await element.type("1111111111@qq.com")time.sleep(1)element = await page.querySelector("#login-account-password")await element.type("XXXXXXXX")time.sleep(1)element = await page.querySelector("#login-button")await element.click()time.sleep(1)#输出邮箱+密码,点击登录按钮await page.waitForNavigation()#等待登录完成element = await page.waitForSelector(".select-kit-header-wrapper")if element :print("已成功登录!")else :print("登录失败")#通过等待特定的一个元素的class出现,来判断是否登录成功response = requests.get(url)    #发送HTTP请求获取对象html_content = response.text    #在对象中提取HTML文档soup = BeautifulSoup(html_content, 'html.parser')   #解析HTMLresult = soup.select("p.login-welcome__description")    #选择一个p标签,标签class是login-welcome__descriptionprint(result)time.sleep(3)await browser.close()async def Main() :url = "https://example.com"await DengLu(url)if __name__ == "__main__":asyncio.run(Main())

输出:

1、cookie和session

(1)cookie:我们每次在访问一个网页时,浏览器就会发送一个请求,服务器就会根据这个请求返回对应的页面文件,这样使得我们可以进行访问一个网站,而在我们登陆成功之后,服务器会向浏览器发送一些身份标识数据,称为cookie,这样浏览器每次发送请求的时候,就会带上cookie,服务器就知道是之前那个登录过的用户的请求了

(2)session:每一个服务器里面都存储了大量的数据,不仅有各个网站的相关文件,服务器还在内存给浏览器存储了一个session,每个浏览器对应不同的session,里面存放着浏览器的状态,比如你在浏览器内访问到哪一个页面,登录的信息填了多少,而不同的session都有一个自己的session id ,浏览器在发送请求的时候,如果带上session id,服务器也可以知道是哪一个浏览器发送的请求

(3)我们可以在Python中,通过指定的函数,再结合cookie,可以生成标识同一个浏览器的session

下面有相关函数:

①在pyppeteer库中有一个cookie()函数,可以获取cookie

②在requests库中requestsSession()可以生成一个空session

③cookie.update(cookie)函数可以根据cookie生成对应的session

④Session.get(url)函数可以向服务器发送一个带session的请求

三、其他

1、绝对网址和相对网址

绝对网址一般是以http://和https://开头的,而相对网址没有这两种开头

假如我们有现在在一个网址:

https://www.example.com/one/hello.htm

如果这个网页有一个链接,是相对的:

<a href = "Wow.htm">点击我!</a>

那么这个链接的绝对网址就是:

https://www.example.com/one/Wow.htm

2、sleep函数

我们可以用time.sleep()函数来让代码等待一定的时间载接着运行,这个函数需要先调用time库

它不仅可以延迟代码的执行时间,来达到模仿人的动作(防止识破),还可以来等待页面加载完成

以上就是Python网络爬虫设计(三)的全部内容:)

http://www.dtcms.com/wzjs/243268.html

相关文章:

  • 英文集团网站设计建设网站查询访问
  • 在线营销型网站建设seo引擎优化怎么做
  • 互联网技术专业学什么沈阳seo按天计费
  • 公司建网站怎么建搜索指数在线查询
  • 济源网站建设哪家好小程序开发流程详细
  • 如何做移动支付网站百度的网址怎么写
  • 城乡建设厅网站免费ip地址网站
  • c2c有哪些电商平台天津抖音seo
  • 河南省建设信息网站百度咨询电话人工台
  • 潜山做网站上海市人大常委会
  • 涨粉丝1元1000个seo站长查询
  • 找人做网站不算诈骗罪吗免费域名的网站
  • 做网站流程、招工 最新招聘信息
  • 一级a做爰片啪网站怎么自己开发网站
  • 陕西省建设厅三类人员报名网站广东百度seo关键词排名
  • 合肥网站建设新浪营销域名注册管理中心网站
  • 房地产楼盘微信网站建设营销方案搜狗官网
  • 自己做的网站怎么弄到网上视频广告联盟平台
  • wordpress设置网站地图网络营销的背景和意义
  • 电子商务网站建设与管理的实验报告成都seo技术
  • 手机网站怎么做单页面搜索引擎营销广告
  • 服装网站建设公司有哪些现在如何进行网上推广
  • 毕设如何做网站怎么申请域名建立网站
  • 全部游戏免费(试玩)不用下载专业的网站优化公司
  • 廊坊网站专业制作站内优化
  • 企业官方网站开发外包互联网营销培训班
  • 如何建设一个苹果网站百度广告位价格表
  • 邯郸建立网站费用网站排名怎么做
  • 贵阳做网站开发科技有限公司南京今天重大新闻事件
  • 南京外贸网站建设系统关键词排名技巧