一、什么是爬虫
爬虫就是把一个网站里的内容读取下来,这里我们就要学习一个知识,我们看到的网页是有一种叫HTML的语言编写的,他可以给文字显示不同的样式如:hello
就会显示段落:hello
二、如何获取网页的内容
一般爬虫不会把网页内容爬下来,而是把网页源代码爬下来 就好比说:hello
会爬到 hello
如果要在浏览器上看源代码,只需在网页上右键
点击 选择查看网页源代码
即可,那么怎么用python把源代码爬下来呢?这是要下载一个模块 在cmd里输入:
pip install requests复制代码
然后就可以用模块requests爬网页了
import requests # 导入模块url = 'https://sina.com.cn' # 要爬的网址新浪html = requests.get(url) # 获取网页源代码print(html.text) # 输出 注:需要text函数来返回源代码复制代码
输出:
细心的人可以看到后面的代码有编码问题
要把代码转成utf-8中文编码
import requestsurl = 'https://sina.com.cn'html = requests.get(url)html.encoding = 'utf-8' # 将编码设为utf-8中文编码print(html.text)复制代码
输出
三、分析源代码
最后要在源代码中筛选出我们要的数据 需要用到模块 lxml 在cmd里输入:
pip install lxml
然后就要使用lxml来筛选数据
import requestsfrom lxml import etreeurl = 'https://sina.com.cn'html = requests.get(url)html.encoding = 'utf-8'element = etree.HTML(html.text) # 获取htmlresult = element.xpath('//a/text()') # 进行筛选for i in result: print(i) # 输出复制代码
输出:
其中核心语句是
result = element.xpath('//a/text()') 复制代码
而 //a/text() 的意思是获取所以的a标签的值复制代码
而常用的xpath
语法如下:
nodename
选取此节点的所有子节点
/ | 从当前节点选取直接子节点 |
// | 从当前节点选取子孙节点 |
. | 选取当前节点 |
… | 选取当前节点的父节点 |
@ | 选取属性 |
-
| 通配符,选择所有元素节点与元素名复制代码
@* | 选取所有属性 [@attrib] | 选取具有给定属性的所有元素 [@attrib=‘value’] | 选取给定属性具有给定值的所有元素 [tag] | 选取所有具有指定元素的直接子节点 [tag=‘text’] | 选取所有具有指定元素并且文本内容是text节点
四、筛选实例
如果要在sina.com.cn
读取部分新闻 那么要在键盘上按下F12
点左上角的按钮
鼠标悬停在新闻上再点击 在代码栏中找新闻
再找到所有新闻的父元素
这里可以看到ul的class为list-a news_top
在python中写:
import requestsfrom lxml import etreeurl = 'https://sina.com.cn'html = requests.get(url)html.encoding = 'utf-8'element = etree.HTML(html.text)result = element.xpath('//ul[@class="list-a news_top"]//a/text()') # 进行筛选for i in result: print(i)复制代码
输出
更多有关Python学习经验分享,可以关注我,持续更新。
学好 Python 不论是就业还是做副业赚钱都不错,这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
👉CSDN大礼包:《python入门&进阶学习资源包》免费分享
Python全套学习资料👇👇👇
(部分资料截取图)
① Python全套书籍和视频秘籍
其中包含了Python基础入门、爬虫、数据分析、web开发,这里一共有几十个吧,可能不是很多,但对于初学者来说应该足够。
里面的知识点都是比较干练的,时长也是正常的40分钟一节课。
②Python数据分析入门到精通
(视频课程+课件+源码)
③零基础也能懂的python办公自动化教程
④Python面试集锦和简历模板
学会了Python之后,有了技能就可以出去找工作了!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
⑤Python副业兼职路线
学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要《全套0基础入门到进阶的Python学习资料》的,可以扫描下方二维码免费领取 🆓