Python爬虫初学者学习笔记(带注释)
一,安装编程工具并进入编程界面
首先去https://www.continuum.io/downloads/网站下载Anaconda工具并安装;打开cmd,输入jupyter notebook并回车(win7),他会自动帮你打开编辑界面(基于浏览器的);点击new按钮新建一个Python3的编辑框,他会弹出一个新窗口,好了现在可以敲代码了。
二,爬取整个页面
- import requests #导入requests模块
- res = requests.get('http://study.163.com/') #调用模块中的get方法,以网易云课堂为例
- print(res.text) #打印整个页面内容
三,爬取指定标签的文本
- from bs4 import BeautifulSoup #导入BeautifulSoup模块
- html_sample = '<!DOCTYPE html><html><head><meta charset="utf-8">\
- <title>文档标题</title></head><body><a id="a1" class="c" href="#">测试数据1</a>\
- <a id="a2" class="c" href="##">测试数据2</a>\
- </body></html>' #html_sample变量模拟你读取的整个页面内容,“\”符号在编辑框换行时链接字符串
- soup = BeautifulSoup(html_sample,'html.parser') #爬取页面的所有文本
- a=soup.select('a') #筛选出所有的a标签和对应内容,返回的是个数组
- b=soup.select('#a1') #筛选id为a1的标签和对应内容
- c=soup.select('.c') #筛选class为c的标签和对应内容,返回的是个数组
- print(a) #打印a标签文本,带标签
- print(a[0]) #打印第一条a标签文本,带标签
- print(a[0].text) #打印第一条a标签文本,不带标签
- for aa in a:
- print(aa.text) #逐条打印a中的文本,不带标签
- print(aa['href']) #逐条打印a中的链接
四,常见的一些代码
a=soup.select('a')
l=len(a) #数组a的长度
aa=a[0].contents #第一个a标签的内容
aa.strip() #去掉收尾空格
type(a) #a的数据类型
dt =datetime.strptime(timestr,'%Y年%m月%d日%H:%M') #字符串转时间
dt.strftime('%Y-%m-%d') #时间转字符串
soup.select('#div p')[:-1] #选取id为div标签下除了最后一项P元素的所有P元素
article = [] #定义一个list
article.append(a[0].text) #给list追加元素
'@'.join(article) #将article中元素用‘@’符号隔开并转换为字符串
[p.text.strip() for p in soup.select('#artibody p')] #返回一个list,内容为p.text
newsurl.split('/') #字符串分割
newsurl.rstrip('.html') #去掉字符串末尾指定字符
newsurl.lstrip('aaa') #去掉字符串首指定字符
re.search('aaa(.+).html') #截取字符串,需引入re
jd = json.loads(comments.text.strip('var data=')) #读取json,需要引入json
commentURL .format('gda') #将commentURL中的‘{}’替换为'gda'
def getNewsDetial(newsurl) #定义一个函数,参数为newsurl
建议先到网络上找一些视频教程学习一些python语言基础,治标不治本没用的。。。
Python爬虫初学者学习笔记(带注释)的更多相关文章
- Requests:Python HTTP Module学习笔记(一)(转)
Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...
- Python Built-in Function 学习笔记
Python Built-in Function 学习笔记 1. 匿名函数 1.1 什么是匿名函数 python允许使用lambda来创建一个匿名函数,匿名是因为他不需要以标准的方式来声明,比如def ...
- scrapy爬虫框架学习笔记(一)
scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...
- Python爬虫系统化学习(2)
Python爬虫系统学习(2) 动态网页爬取 当网页使用Javascript时候,很多内容不会出现在HTML源代码中,所以爬取静态页面的技术可能无法使用.因此我们需要用动态网页抓取的两种技术:通过浏览 ...
- Python爬虫系统学习(1)
Python爬虫系统化学习(1) 前言:爬虫的学习对生活中很多事情都很有帮助,比如买房的时候爬取房价,爬取影评之类的,学习爬虫也是在提升对Python的掌握,所以我准备用2-3周的晚上时间,提升自己对 ...
- Python爬虫系统化学习(4)
Python爬虫系统化学习(4) 在之前的学习过程中,我们学习了如何爬取页面,对页面进行解析并且提取我们需要的数据. 在通过解析得到我们想要的数据后,最重要的步骤就是保存数据. 一般的数据存储方式有两 ...
- Python爬虫系统化学习(5)
Python爬虫系统化学习(5) 多线程爬虫,在之前的网络编程中,我学习过多线程socket进行单服务器对多客户端的连接,通过使用多线程编程,可以大大提升爬虫的效率. Python多线程爬虫主要由三部 ...
- 一个Python爬虫工程师学习养成记
大数据的时代,网络爬虫已经成为了获取数据的一个重要手段. 但要学习好爬虫并没有那么简单.首先知识点和方向实在是太多了,它关系到了计算机网络.编程基础.前端开发.后端开发.App 开发与逆向.网络安全. ...
- Python快速入门学习笔记(二)
注:本学习笔记参考了廖雪峰老师的Python学习教程,教程地址为:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb49318210 ...
随机推荐
- SharePoint Framework 基于团队的开发(二)
博客地址:http://blog.csdn.net/FoxDave 本篇介绍SPFx项目的一般开发流程.SharePoint Framework基于开源的工具链,也遵循开源技术栈中其他项目的开发流程. ...
- Hyperledger Fabric-CA学习
Hyperleder Fabric系统架构核心逻辑包括MemberShip.Blockchain和Chaincode 其中上述3个核心逻辑中,Membership服务用来管理节点身份.隐私.confi ...
- eclipse安装反编译插件(附jad下载)
eclipse安装反编译插件(附jad下载) 博客分类: eclipse 一.eclipse反编译插件Jadclipse jadclips插件网站: http://jadclipse.sou ...
- 安装SSD
前面两篇文章讲了用SSD检测框架训练自己的数据集,这篇补充一下SSD的安装.github链接:https://github.com/weiliu89/caffe/tree/ssdSSD是16年ECCV ...
- 解决getElementsByClassName()在IE8下的兼容问题
getElementsByClassName,这个方法让我们可以通过 class 属性中的类名来访问元素,但是IE9 以下的浏览器不支持 .为解决这个问题,我们写一个兼容函数 getByClass() ...
- 互动科技 快乐分享 X/Open DTP——分布式事务模型
这一几天一直在回顾事务相关的知识,也准备把以前了解皮毛的知识进行一些深入总结,虽然这一些知识并没有用到,但是了解其实现原理还是很有必要的,因为知道了原理,你也能把它实现出来. 在上一节事务的编程模型里 ...
- Linux常用命令之Yum
Linux Yum命令详解Yum全称Yellow dog Updater,Modified,是一个在Fedora和RedHat以及SUSE中提供的基于RPM包的软件包管理工具,能够从指定的服务器自动下 ...
- mysql远程访问1045的问题解决
mysql远程访问1045的问题解决 首先进入mysql数据库,然后输入下面两个命令 grant all privileges on *.* to 'root'@'%' identified by ' ...
- IIC时序和24C02读写字节时序
一年前刚学51单片机时,接触到了IIC时序和用IIC通信读写AT24C02的学习历程.那时刚刚大一,对数据线时钟线等概念不是很清楚,也没有分清IIC通信的底层时序和写24c02的时序为什么不同. 借着 ...
- Centos7.4 防火墙配置
# service firewalld status; #查看防火墙状态 (disabled 表明 已经禁止开启启动 enable 表示开机自启,inactive 表示防火墙关闭状态 activate ...