一文学会利用python解决文章付费限制问题

 更新时间:2023年05月07日 14:31:04   作者:朦胧的雨梦  
本篇文章主要介绍利用Python爬虫爬取付费文章,适合练习爬虫基础同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧

本次爬虫思路

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

本次操练网页

https://www.duanmeiwen.com/xinshang/3203373.html(某美文网)

网页内容:

✨一.爬虫模板

🌲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.首先右键查看网页源代码

很明显,爬取的信息就在源代码里,所以直接对网页链接发起请求。这里请求头伪装我们优先携带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)

✨四. 提取信息

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

🌲1.正则表达式

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

import re

接下来开始操作这堆"字符串"

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

右键点击检查进入Network页面,主要是方便我们看清楚结构。

效果

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

🌲2.XPath

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

首先导入XPath

from lxml import etree

接下来开始操作

效果

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

🌲 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('文章爬取完成')

效果

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

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

🌲完整代码

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('文章爬取完成')

以上就是一文学会利用python解决文章付费限制问题的详细内容,更多关于Python解决文章付费限制的资料请关注脚本之家其它相关文章!

相关文章

  • python 利用pandas将arff文件转csv文件的方法

    python 利用pandas将arff文件转csv文件的方法

    今天小编就为大家分享一篇python 利用pandas将arff文件转csv文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 详解如何优化和调整Python中Scrapy的性能

    详解如何优化和调整Python中Scrapy的性能

    在本篇高级教程中,我们将深入探讨如何优化和调整Scrapy爬虫的性能,以及如何处理更复杂的抓取任务,如登录,处理Cookies和会话,以及避免爬虫被网站识别和封锁,需要的朋友可以参考下
    2023-09-09
  • pygame加载中文名mp3文件出现error

    pygame加载中文名mp3文件出现error

    本文主要介绍了pygame加载中文名mp3文件出现error的解决方案。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • UI自动化定位常用实现方法代码示例

    UI自动化定位常用实现方法代码示例

    这篇文章主要介绍了UI自动化定位常用实现方法代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python configparser模块应用过程解析

    Python configparser模块应用过程解析

    这篇文章主要介绍了Python configparser模块应用过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Python Pandas中创建Series的三种方法总结

    Python Pandas中创建Series的三种方法总结

    这篇文章主要介绍了Python Pandas中创建Series的三种方法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 讲解Python的Scrapy爬虫框架使用代理进行采集的方法

    讲解Python的Scrapy爬虫框架使用代理进行采集的方法

    这篇文章主要介绍了讲解Python的Scrapy爬虫框架使用代理进行采集的方法,并介绍了随机使用预先设好的user-agent来进行爬取的用法,需要的朋友可以参考下
    2016-02-02
  • 基于Python实现语音合成小工具

    基于Python实现语音合成小工具

    TTS(Text To Speech)是一种语音合成技术,可以让机器将输入文本以语音的方式播放出来,实现机器说话的效果。本文将使用pyttsx3库作为示范,编写一个语音合成小工具,感兴趣的可以了解一下
    2022-12-12
  • python pandas写入excel文件的方法示例

    python pandas写入excel文件的方法示例

    这篇文章主要介绍了python pandas写入excel文件的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 浅谈python中scipy.misc.logsumexp函数的运用场景

    浅谈python中scipy.misc.logsumexp函数的运用场景

    下面小编就为大家带来一篇浅谈python中scipy.misc.logsumexp函数的运用场景。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论