学习了三个星期的python基础语法,对python语法有了一个基本的了解,然后想继续深入学习,但不喜欢每天啃书本,太无聊了,只有实战才是练兵的最好效果。听说爬虫技术还是比较好玩的,就搞爬虫,但找了好多资料没有找到合适的资料,最后才找到传说中的合适爬虫初学者的书籍《Python
3网络爬虫开发实战 ,崔庆才著》(文末附书本下载链接),学习了三天,终于完整搞出了自己的第一爬虫,哈哈~。。。。。。进入正题

       目标:爬取网页简书中文章小标题

       环境:python3.65   pycharm软件

       思路:提取网页的源码—>筛选源码—>输出结果(保持文件)

 

一、提取网页源码

       取网页源码方法很多,常用的库有:urllib库,requests库等。。。此处使用requests库,So先导入此库:import
requests,然后通过get方法获取网页源码。。。。。
import requests #导入requests库 html = requests.get(‘https://www.jianshu.com/’)
#发送请求 print(html.text) #输出网页源码
     
 三行代码就可以获取一个网页的源码,是不是很简单,但去获取一下简书的源码,你会发现什么实际的东西都没有。。。。什么情况???其实是简书采用了一些反爬虫的手段,有没有破解方法,当然有,所谓道高一尺。。。。,只需要在代码的前面加上如下代码即可,模拟浏览器获取网页源码。。。。
headers = { 'User-Agent':'Mozilla/5.0(Macintosh; Intel Mac OS X 10_11_4)\
AppleWebKit/537.36(KHTML, like Gecko) Chrome/52 .0.2743. 116 Safari/537.36' }
#模拟浏览器获取 html = requests.get(‘https://www.jianshu.com/’,headers = headers)
print(html.text)
         此次输出的就简书真实的源代码了,完了吗??当然还没有,作为一名菜鸟,我们必须得学会伪装自己,将获取网页源码的这段封装起来就行了。。。。。

二、筛选源码

       做完上面步骤,你输出一看,我去!这都是什么跟什么啊,根本找不到在哪好伐?

客官别急啊,我这就去给你叫我们的小。。。图片!图片!

首先我们要一个正则表达式 (什么你不会?请看菜鸟入门教程-->Go
<http://www.runoob.com/regexp/regexp-syntax.html>)

然后我们看源代码,Yeah 我们找到了其中一张图片是这样的



写出图片的正则表达式:reg = r'<a\sclass=".*?"\starget=".*?"\shref=".*?">(.*)</a>'


小解释一下——匹配以<a\sclass=""开头然后接一个或多个任意字符(非贪婪)(.*?)其次接着匹配target=“接着一个或多个任意字符(非贪婪)(.*?)后面一样,最后移</a>结尾,懂了吗???不懂多观察上图和表达式就会了
import requests import re def get_html(url): headers = {
'User-Agent':'Mozilla/5.0(Macintosh; Intel Mac OS X 10_11_4)\
AppleWebKit/537.36(KHTML, like Gecko) Chrome/52 .0.2743. 116 Safari/537.36' }
response = requests.get(url,headers = headers) html = response.text return html
reg = r'<a\sclass=".*?"\starget=".*?"\shref=".*?">(.*)</a>' #正则表达式 reg_ques =
re.compile(reg) #编译一下正则表达式,运行的更快 queslist =
reg_ques.findall(get_html('https://www.jianshu.com/')) #匹配正则表达式
三、输出结果

如果直接print()方法输出会输出一个列表,把列表转换为普通的输出就可以看到如下结果:

到此基本可以结束了,也可以将其保存在TXT文件中。。。。我的第一个完整爬虫诞生了,你的呢。。。。

 Python 3网络爬虫开发实战PDF文件的链接: https://pan.baidu.com/s/1aMwfPPNkmYYNZiPR9ltDwg 密码:
scpm

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信