Python爬虫 | 一文解决文章付费限制问题

这篇具有很好参考价值的文章主要介绍了Python爬虫 | 一文解决文章付费限制问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文概要

本篇文章主要介绍利用Python爬虫爬取付费文章,适合练习爬虫基础同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧!
Python爬虫 | 一文解决文章付费限制问题

🌟🌟🌟个人简介🌟🌟🌟

☀️大家好!我是新人小白博主朦胧的雨梦,希望大家多多关照和支持😝😝😝
🌖大家一起努力,共同成长,相信我们都会遇到更好的自己👊👊👊
🌗期待我的文章能给各位带来收获和解决问题的灵感🤩🤩🤩
🌟大家的三连是我不断更新的动力~😘😘😘

Python爬虫 | 一文解决文章付费限制问题

本次爬虫思路

最最重要的是分析信息接口!!!
1. 获取url
2. 通过请求拿到响应
3. 处理反爬
4. 提取信息
5. 保存内容

本次操练网页

    https://www.duanmeiwen.com/xinshang/3203373.html(某美文网)Python爬虫 | 一文解决文章付费限制问题
网页内容:
Python爬虫 | 一文解决文章付费限制问题

学习目标🏆

  1.掌握爬虫布置模板;

  2.掌握反爬手段;

  3.了解如何提取保存内容。

✨一.爬虫模板

🌲1.urllib库的使用模板

import urllib.request     
url ='xxxxxxxxxxxx'   
#发送请求                
 request= urllib.request.Request(url,data,header)      
 #得到响应
 response=urllib.request.urlopen(request)
 #解码
 content = response.read().decode() 
 #查看数据
 print(content)    

🌲2.requests库的使用模板

import requests   
url ='xxxxxxxxxxxx' 
#发送请求                              
response = request.get(url, params,headers)  (get请求或者post请求)  
#根据响应的格式解码,非常智能
response.encoding=response.appareent_encoding
 #查看数据
 print(response.txt)

✨二.分析信息接口

  1.首先右键查看网页源代码

Python爬虫 | 一文解决文章付费限制问题
  很明显,爬取的信息就在源代码里,所以直接对网页链接发起请求。这里请求头伪装我们优先携带user-agent

✨三.通过请求拿到响应

import requests

# 需要请求的url
url = 'https://www.duanmeiwen.com/xinshang/3203373.html'

# 伪装请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
}

# 获得响应
response = requests.get(url=url, headers=headers)

# 智能解码
response.encoding = response.apparent_encoding
# 打印数据
print(response.text)

Python爬虫 | 一文解决文章付费限制问题
Python爬虫 | 一文解决文章付费限制问题
真轻松,这种网页就是最好的,把东西都放在你面前,拿吧拿吧我很大方!

✨四. 提取信息

针对返回数据的特点,我们现在有三种方法:

🌲1.正则表达式

  正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。简单来说,利用一定的逻辑公式,过滤掉不需要的数据,主要处理字符串。对于本题来说有点杀鸡用牛刀了。简单来示范一下:
首先导入re模块

import re

接下来开始操作这堆"字符串"
  re.compile()是用来优化正则的,它将正则表达式转化为对象,re.search(pattern, string)的调用方式就转换为 pattern.search(string)的调用方式,多次调用一个正则表达式就重复利用这个正则对象,可以实现更有效率的匹配。需要搭配finditer()等一起使用,参数pattern : 正则表达式;,flags : 表示匹配模式。

Python爬虫 | 一文解决文章付费限制问题

  右键点击检查进入Network页面,主要是方便我们看清楚结构。
Python爬虫 | 一文解决文章付费限制问题

效果
Python爬虫 | 一文解决文章付费限制问题
  这里写的比较粗糙,因为大家会发现我们会大量在重复写一个相同的筛选语句,所以就有那么一点机械重复的感觉,而且我们有专门对付这中HTML结构的工具,所以接下来咱们隆重介绍XPath!

🌲2.XPath

  XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快地被开发者采用来当作小型查询语言。我们只要简单理解为它主要是针对定位HTML中某部分位置的语言。
首先导入XPath

from lxml import etree

接下来开始操作
Python爬虫 | 一文解决文章付费限制问题

效果
Python爬虫 | 一文解决文章付费限制问题

这就是优雅,对比上面,我们用三行代码就完成了任务,由此可见,用对方法很重要。

🌲 3.漂亮的汤(BeautifulSoup)<本次不使用>

✨五.保存内容

  这里就很简单,基础文件操作的知识,“行百里者半九十”,来吧,咱们直接一口气写完。

tree = etree.HTML(response.text)
titles = tree.xpath('/html/body/div[2]/div[2]/div/div[2]/h2/text()')
message = tree.xpath('/html/body/div[2]/div[2]/div/div[2]/p/text()')
for i in range(len(message)):
    with open('优美文艺句子.txt', 'a', encoding='utf-8') as fp:
        fp.write(message[i])
        fp.write('\n')
print('文章爬取完成')

效果
Python爬虫 | 一文解决文章付费限制问题

✨六.总结(附完整代码)

  通过今天的小案例,我们明白了,第一,思路一定要清楚,快准狠分析出接口链接,第二,提取数据的方法要正确,这样会直接事半功倍,好了,今天就分享到这里,谢谢大家的观看,有什么想法记得评论区告诉我!拜拜~✨ ✨ ✨

🌲完整代码

import requests
from lxml import etree

# 需要请求的url
url = 'https://www.duanmeiwen.com/xinshang/3203373.html'

# 伪装请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
}

# 获得响应
response = requests.get(url=url, headers=headers)

# 智能解码
response.encoding = response.apparent_encoding

# 提取数据
tree = etree.HTML(response.text)
titles = tree.xpath('/html/body/div[2]/div[2]/div/div[2]/h2/text()')
message = tree.xpath('/html/body/div[2]/div[2]/div/div[2]/p/text()')

#遍历保存数据
for i in range(len(message)):
    with open('优美文艺句子.txt', 'a', encoding='utf-8') as fp:
        fp.write(message[i])
        fp.write('\n')
print('文章爬取完成')

💫往期好文推荐

  TOP🥇.自动驾驶技术未来大有可为❤️❤️❤️🏆🏆🏆❤️❤️❤️

  TOP🥈.Python爬虫 | 利用python爬虫获取想要搜索的数据(某du)❤️❤️❤️🏆🏆🏆❤️❤️❤️

  TOP🥉.ChatGPT | 一文详解ChatGPT(学习必备)❤️❤️❤️🏆🏆🏆❤️❤️❤️

Python爬虫 | 一文解决文章付费限制问题文章来源地址https://www.toymoban.com/news/detail-438050.html

到了这里,关于Python爬虫 | 一文解决文章付费限制问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • python爬虫获取子域名以及对“百度安全验证”问题的解决

    编写的python代码是在借鉴老师给的资料的基础上实现的 进行课堂实践:模仿bing搜索引擎域名收集功能,实现baidu搜索引擎的域名搜集功能时,走了不少弯路,最后终于形成了完整的思路。尤其是在“百度安全验证”问题上耗费的时间之久,就因为忽略了cookie的有效获取 bing搜

    2024年02月02日
    浏览(13)
  • 什么是Python爬虫分布式架构,可能遇到哪些问题,如何解决

    目录 什么是Python爬虫分布式架构 1. 调度中心(Scheduler): 2. 爬虫节点(Crawler Node): 3. 数据存储(Data Storage): 4. 反爬虫处理(Anti-Scraping): 5. 分布式通信和协调(Communication and Coordination): Python爬虫分布式架构代码示例 1. 调度中心(scheduler.py): 2. 爬虫节点(crawl

    2024年02月10日
    浏览(13)
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中,为了应对反爬虫、匿名访问或绕过某些地域限制等需求,IP代理池成为了一种常用的解决方案。IP代理池是一个包含多个可用代理IP地址的集合,可以通过该代理池随机选择可用IP地址来进行网络请求。 IP代理池是一组可用的代理IP地址,可以用来隐藏用户的

    2024年01月21日
    浏览(20)
  • Python爬虫| 一文掌握XPath

    本篇文章主要介绍利用 Python爬虫爬取付费文章 ,适合练习爬虫基础同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧! ☀️大家好!我是新人小白博主朦胧的雨梦,希望大家多多关照和支持😝😝😝 🌖大家一起努力,共同成长,相信我们都会

    2024年02月05日
    浏览(16)
  • 【Python爬虫】CSDN热榜文章热门词汇分析

    在信息时代,我们经常需要从大量的文章中获取有用的信息。本文将介绍如何使用Python进行数据处理,获取热榜文章的标题和标签,并使用jieba库进行数据分析。通过本文的学习,你将掌握获取和分析热榜文章数据的技巧。 先上看看效果: 在开始编写代码之前,我们需要进行

    2024年02月16日
    浏览(14)
  • Python应用-爬虫实战-求是网周刊文章爬取

    任务描述 本关任务:编写一个爬虫,并使用正则表达式获取求是周刊 2019 年第一期的所有文章的 url 。详情请查看《求是》2019年第1期 。 相关知识 获取每个新闻的 url 有以下几个步骤: 首先获取 2019 年第 1 期页面的源码,需要解决部分反爬机制; 找到目标 url 所在位置,观

    2024年02月04日
    浏览(14)
  • 【python】一文了解Python爬虫 | 文末送书

    目录 引言 1. 爬虫基础知识 1.1 什么是爬虫 1.2 HTTP协议 1.2.1 HTTP请求方法 1.GET请求 1.2.2 请求头常见字段 1.2.3 响应状态码 1.3 HTML解析 1.3.1 Beautiful Soup        解析库 1.3.2 XPath         xpath解析原理:           xpath 表达式 2. 爬虫进阶技巧 2.1 防止被反爬虫 2.1.1 User-Agent伪

    2024年02月13日
    浏览(13)
  • 【爬虫 | Python】解决‘Requests Max Retries Exceeded With Url‘报错的问题

    我们在写爬虫的时候,经常会遇到这样的报错信息: HTTPConnectionPool(host=‘xxx.xxx.com’, port=443): Max retries exceeded with url: /api/v2/oauth (Caused by NewConnectionError(’urllib3.connection.HTTPConnection object at 0x7fac5953ab70: Failed to establish a new connection: [Errno 110] Connection timed out’)) 这里有3个重要的信

    2023年04月12日
    浏览(10)
  • 【python爬虫应用03】csdn个人所有文章质量分查询

    🛠️ 环境准备 在开始编写代码之前,我们需要进行一些环境准备。以下是所需的环境和库: 操作系统:Windows 编程语言:Python 3 编辑器:VSCode(可选) 安装所需的库: requests:用于发送HTTP请求 MultipartEncoder:用于构造POST请求的请求体 可以使用以下命令在命令行中安装这些

    2024年02月11日
    浏览(14)
  • 记一次python写爬虫爬取学校官网的文章

    有一位老师想要把官网上有关数字化的文章全部下载下来,于是找到我,使用python来达到目的 首先先查看了文章的网址 获取了网页的源代码发现一个问题,源代码里面没有url,这里的话就需要用到抓包了,因为很明显这里显示的内容是进行了一个请求,所以只能通过抓包先

    2023年04月18日
    浏览(10)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包