爬虫笔记(一):实战登录古诗文网站

这篇具有很好参考价值的文章主要介绍了爬虫笔记(一):实战登录古诗文网站。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:登录古诗文网站,账号+密码+图形验证码

第一:自己注册一个账号+密码哈
第二:图形验证码,需要一个打码平台(充钱,超能力power!)或者tesseract开源包,这两个用于自动识别图形验证码哈~
我用的是超级鹰,充了1块,有1000积分,一次10积分,初学者福音hhhhh
爬虫笔记(一):实战登录古诗文网站,爬虫,笔记
在软件ID随便填一下软件名称和说明,获取软件key
然后点击首页,首页的菜单栏处有个开发文档,来到这个页面,然后找到python的Demo,get一个压缩包~
爬虫笔记(一):实战登录古诗文网站,爬虫,笔记
压缩包里有一个chaojiying.py,把它复制到自己的项目里~
爬虫笔记(一):实战登录古诗文网站,爬虫,笔记
第三:开始码

1. 调用chaojiying.py

Chaojiying_Client中的三个参数替换成自己的即可,其中filePath是后续保存下来的验证码图片的路径~

from chaojiying import Chaojiying_Client

def getCode(filePath):
    c = Chaojiying_Client('超级鹰的账号', '超级鹰的密码', '软件Key')
    im = open(filePath, 'rb').read()
    return c.PostPic(im, 1902)['pic_str']
2. 获取验证码(还没到登录那一步哈)
headers = {
	'User-Agent': 'xxx'
}
url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
# 发送请求
page_text = requests.get(url=url, headers=headers).text
# 获取页面源码
page_tree = etree.HTML(page_text)
# 获取验证码路径及验证码本体
# 通过page_tree.xpath('//*[@id="imgCode"]/@src')[0]可以获取验证码<img>标签中的src属性,即验证码的路径
# 但验证码真实路径如下~
img_src = "https://so.gushiwen.cn" + page_tree.xpath('//*[@id="imgCode"]/@src')[0]
img_data = session.get(url=img_src, headers=headers).content
# 将验证码保存至同级code.jpg
with open('./code.jpg', 'wb') as f:
	f.write(img_data)
# 调用超级鹰,获取code
code = getCode('./code.jpg')

在浏览器按下F12,可以看到页面的源码信息,找到验证码对应的盒子,可以看到其src属性。<img>标签右键,copy->copy xpath即可得到验证码路径,拼接在官网地址后就是代码中的img_src
至于xpath是啥,其实还没有学到那里,当当好在学习xpath的时候突然想打通一套登录流程,但大概理解xpath就是可以动态获取某个标签或元素属性的东西叭(超小声)
爬虫笔记(一):实战登录古诗文网站,爬虫,笔记

3. 实战登录

在官网登录之后,打开开发者工具f12,找到如图所示的Payload,这就是访问登陆后的页面时的请求参数,共7个,其中只有__VIEWSTATE__VIEWSTATEGENERATORcode动态变化的(碎碎念,一开始不知道__VIEWSTATE__VIEWSTATEGENERATOR是啥,导致发送请求,一直提示错误,大哭出声)
爬虫笔记(一):实战登录古诗文网站,爬虫,笔记
现在code已经有了,那__VIEWSTATE__VIEWSTATEGENERATOR咋获取嘞
老规矩,获取这两玩应的xpath路径
还是,在源代码中找到这两,然后右键copy->copy xpath
爬虫笔记(一):实战登录古诗文网站,爬虫,笔记
完整代码如下:

import re, os
import requests
from lxml import etree

from chaojiying import Chaojiying_Client


def getCode(filePath):
    c = Chaojiying_Client('超级鹰的账号', '超级鹰的密码', '软件Key')
    im = open(filePath, 'rb').read()
    return c.PostPic(im, 1902)['pic_str']

"""
    获取验证码
"""
if __name__ == "__main__":
    session = requests.Session()
    headers = {
        'User-Agent': 'xxx'
    }
    url = 'https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
    # 先获取验证码
    page_text = requests.get(url=url, headers=headers).text
    page_tree = etree.HTML(page_text)
    # 获取__VIEWSTATE和__VIEWSTATEGENERATOR
    viewstate = page_tree.xpath('//*[@id="__VIEWSTATE"]')[0]
    viewagent = page_tree.xpath('//*[@id="__VIEWSTATEGENERATOR"]')[0]

    img_src = "https://so.gushiwen.cn" + page_tree.xpath('//*[@id="imgCode"]/@src')[0]
    img_data = session.get(url=img_src, headers=headers).content
    with open('./code.jpg', 'wb') as f:
        f.write(img_data)
    # f.close()
    code = getCode('./code.jpg')
    print(code)
    # os.remove('code.jpg')
    params = {
        '__VIEWSTATE': viewstate,
        '__VIEWSTATEGENERATOR': viewagent,
        'from': 'http://so.gushiwen.cn/user/collect.aspx',
        'email': 'xxx',
        'pwd': 'xxx',
        'code': code,
        'denglu': '登录'
    }
    page_text = session.post(url=url, data=params, headers=headers).text

    with open('./gushi.html', 'w', encoding='utf-8') as f:
        f.write(page_text)

总结:生活越来越有判头了nie文章来源地址https://www.toymoban.com/news/detail-808903.html

到了这里,关于爬虫笔记(一):实战登录古诗文网站的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 需要登录的网站爬虫详解

    介绍一下请求状态原理 分析需要登录的网站请求特点 分析登陆前后请求差异 如何从接口分析一步步构建一个合理的登录爬虫 巧方法解决登录 登录分析1 我们打开这个链接https://login2.scrape.center/,如果是未登录状态,页面如下 我们输入用户名与密码,点击登录,同时打开f1

    2024年01月23日
    浏览(34)
  • 爬虫遇到需要登录的网站怎么解决

    在日常爬虫工作中我们会遇到这样需要先进行登录才能获取数据的网站,那在遇到这样的情况时我们需要怎么处理呢?今天我们就来简单的分享学习下爬虫对需要登录情况下得处理方式。 通常情况下,用户通过浏览器登录网站时,在特定的登录界面,输入个人登录信息,提交

    2024年02月16日
    浏览(42)
  • 【古诗生成AI实战】之五——加载模型进行古诗生成

      回顾上一篇博客,我们已经成功地训练了我们的模型,并将其保存下来。这是一个重要的里程碑,因为训练好的模型是我们进行文本生成的基础。   现在,接下来的步骤是加载这个训练好的模型,然后使用它来生成古诗。   本章的内容属于 文本生成阶段 。在这一阶

    2024年02月04日
    浏览(42)
  • 绕开网站反爬虫原理及实战

    在本文中,我首先对网站常用的反爬虫和反自动化技术做了一个梳理, 并对可能能够绕过这些反爬技术的开源库chromedp所使用的技术分拆做一个介绍, 最后利用chromedp库对一个测试网站做了爬虫测试, 并利用chromedp库绕开了爬虫限制,成功通过程序自动获取到信息。在测试过程中,顺

    2024年02月06日
    浏览(35)
  • python爬虫实战(1)——网站小说

    经过学习基础,我们学以致用一下子,爬取小说,注意这个小说本身是免费的哦,以后再进阶。 本次为实战记录,笔者很多碎碎念可忽略 基于requests库和lxml中的xpath编写的爬虫,目标小说网站域名http://www.365kk.cc/ 这是网上找的,小说网址很多,而且没有很多反扒机制,新手友

    2024年02月13日
    浏览(37)
  • 【爬虫系列】Python爬虫实战--招聘网站的职位信息爬取

    1. 需求分析 从网上找工作,大家一般都会通过各种招聘网站去检索相关信息,今天利用爬虫采集招聘网站的职位信息,比如岗位名称,岗位要求,薪资,公司名称,公司规模,公司位置,福利待遇等最为关心的内容。在采集和解析完成后,使用 Excel 或 csv 文件保存。 2. 目标

    2024年02月02日
    浏览(52)
  • [爬虫]解决机票网站文本混淆问题-实战讲解

     前言 最近有遇到很多小伙伴私信向我求助,遇到的问题基本上都是关于文本混淆或者是字体反爬的问题。今天给大家带来其中一个小伙伴的实际案例给大家讲讲解决方法 📝个人主页→数据挖掘博主ZTLJQ的主页 ​​ 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 - 爬虫

    2024年02月12日
    浏览(50)
  • 爬虫逆向实战(二十六)--某某学堂登录

    主页地址:某某学堂 1、抓包 通过抓包可以发现数据接口是Account/LoginPost 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现 pass 是加密参数 请求头是否加密? 无 响应是否加密? 无 cookie是否加密? 无 1、看启动器 查看启动器发现里面有一个 Login

    2024年02月11日
    浏览(43)
  • 爬虫逆向实战(十九)--某号站登录

    主页地址:某号站 1、抓包 通过抓包可以发现登录接口 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个 jsondata_rsa 的加密参数 请求头是否加密? 无 响应是否加密? 无 cookie是否加密? 无 1、看启动器 查看启动器发现里面有一个 LoginNow 的调

    2024年02月11日
    浏览(43)
  • 爬虫逆向实战(十三)--某课网登录

    主页地址:某课网 1、抓包 通过抓包可以发现登录接口是user/login 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个 password 加密参数,还有一个 browser_key 这个可以写死不需要关心 请求头是否加密? 无 响应是否加密? 无 cookie是否加密? 无

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包