- Python爬虫基础——HTML、CSS、JavaScript、JQuery网页前端技术
- Python爬虫基础——正则表达式
- Python爬虫基础——re模块的提取、匹配和替换
- Python爬虫基础——XPath语法的学习与lxml模块的使用【优快云】
- Python爬虫进阶——JsonPath使用案例
- Python爬虫进阶——urllib模块使用案例【淘宝】
- Python爬虫进阶——Request对象之Get请求与URL编码【英雄联盟吧】
- Python爬虫进阶——Request对象之post请求案例分析【百度翻译】
- Python爬虫实战—— Request对象之header伪装策略
- Python爬虫实战——反爬策略之代理IP【无忧代理】
- Python爬虫实战——反爬策略之模拟登录【优快云】
- Python爬虫实战——反爬机制的解决策略【阿里】
- Python爬虫总结——常见的报错、问题及解决方案
这一次呢,让我们来试一下“优快云热门文章的抓取”。
话不多说,让我们直接进入CSND官网。
(其实是因为我被阿里的反爬磨到没脾气,不想说话……)
一、URL分析
输入“Python”并点击搜索:

便得到了所有关于“Python”的热门博客,包括 [ 标题,网址、阅读数 ] 等等,我们的任务,就是爬取这些博客。

分析一下上图中曲线处的URL,不难发现:p为页数,q为关键字。
二、XPath路径
打开开发者模式,匹配我们所需信息的标签:
- 通过
//dd[@class='author-time']/span[@class='link']/a/@href匹配各个博客的URL地址;

- 通过
//h1[@class='title-article']/text()匹配各个博客的标题。

注意:
对于XPath路径有疑问的话,可复习《XPath语法的学习与lxml模块的使用》。
三、代码实现
- 定制输入框:
keyword = input("请输入关键词:")
pn_start = int(input("起始页:"))
pn_end = int(input("终止页:"))
- 确定URL:
# 注意要+1
for pn in range(pn_start, pn_end+1):
url = "https://so.youkuaiyun.com/so/search/s.do?p=%s&q=%s&t=blog&viparticle=&domain=&o=&s=&u=&l=&f=&rbg=0" % (pn, keyword)
- 构建request对象:
# 返回request对象
def getRequest(url):
return ur.Request(
url=url,
headers={
'User-Agent': user_agent.get_user_agent_pc(),
}
)
for pn in range(pn_start, pn_end+1):
url = "https://so.youkuaiyun.com/so/search/s.do?p=%s&q=%s&t=blog&viparticle=&domain=&o=&s=&u=&l=&f=&rbg=0" %

这篇博客介绍了Python爬虫在应对阿里网站反爬机制时的策略,包括URL分析、XPath路径匹配以及编码问题的解决。作者通过实践分享了在抓取优快云热门文章过程中遇到的问题,如非预期内容的获取,并最终发现是由于阿里反爬机制导致。文章提供了完整的代码示例,帮助读者理解如何处理类似情况。
最低0.47元/天 解锁文章
4616

被折叠的 条评论
为什么被折叠?



