正则表达式简单介绍
- 正则表达式我在VBA中有详细的阐述《VBA正则笔记》,在python语言中,它的方法与VBA大体相同,不同的是它的用法更加简洁,正则表达式是非常强大的字符处理技术,几乎所有由字符构成的数据它都能解析出来,虽然接触正则表达式半年左右,用的却并不是很好,只写过很少的实用用法,一个是在成本核算核对不规范数据的处理,一个是本部门用excel表格做的不太规范的数据处理。所以这里只写一点简单的用法。
爬虫写法
- 找到个人简书网站首页https://www.jianshu.com/u/233daefdef97
- 通过分析发现个人网页采用ajax请求
https://www.jianshu.com/u/233daefdef97?order_by=shared_at&page=2
https://www.jianshu.com/u/233daefdef97?order_by=shared_at&page=3 - 由于我的文章少,一个页面大约有5页左右内容,超出这个范围会跳转到点赞页面。
- 通过F12查找页面元素发现个人文章的标题放在这样的a标签内<a class="title" target="_blank" href="/p/18fd153d3f3a">爬虫基础系列urllib实战——post请求获取有道词典在线翻译(8)</a>
- 剩下的好办了,直接爬就行了,尝试的时候发现要输入请求头信息,说明简书还是有反爬虫的。
#正则表达式爬取文章内容
#目标网站https://www.jianshu.com/u/233daefdef97
#https://www.jianshu.com/u/233daefdef97?order_by=shared_at&page=2
import requests
import re
headers={'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
url="https://www.jianshu.com/u/233daefdef97?order_by=shared_at&page="
for i in range(1,6):
urll=url+str(i)
res=requests.get(urll,headers=headers).text
#<a class="title" target="_blank" href="/p/18fd153d3f3a">爬虫基础系列urllib实战——post请求获取有道词典在线翻译(8)</a>
pat1=r'<a class="title" target="_blank" href=".*?">(.*?)</a>'
pattern=re.compile(pat1)
data=pattern.findall(res)
print(data)
返回结果:
['爬虫基础系列urllib实战——post请求获取有道词典在线翻译(8)', '爬虫基础系列urllib——get请求(7)', '爬虫基础系列urllib——代理IP(6)', '爬虫基础系列urllib——HTTP代理(5)', '爬虫基础系列urllib——构造随机请求头(4)', '爬虫基础系列urllib——构造请求头(3)', '爬虫基础系列urllib(2)', '爬虫基础系列urllib(1)', 'python在excel中画画']
['VBA字典技术整理', '《七信使》中的数学问题', 'pygame整理(思维导图)', 'python小球弹弹2', 'python小球弹弹', 'python pyautogui与openpyxl运用', '一张导图,爬虫入门', '两年前写的挺好玩——意识流', 'VBA多表汇总与正则处理名称规格']
['python正则笔记', 'VBA核对数据', 'Collatz 序列', 'python——外星人入侵', '关于维度的一点想法(二)', '关于维度的一点想法', 'VBA遍历函数、超链接与控件运用', '活力长城', 'VBA正则笔记']
['VBA窗体控件练习2', 'VBA窗体练习', 'VBA让你的字动起来', 'VBA三种查询方式整理', 'VBA小程序编写心得', 'VBA字典数组运用实例2(定额录入)', 'VBA动态列表框实例', 'VBA字典数组运用实例(工资核算)', '花了三个小时玩了三局现金流游戏']
['忘记带手机的一天', '读《六顶思考帽》有感', '二胡·凤凰山', '致秋天', '小鱼小虾的感悟', '看了第三遍的电影', '第三种天赋', '烟雾下的女人', '她到底要去哪儿']
一个页面用一个列表装,5张页面5个列表。
- 怎么样很容易吧。
网友评论