Python网络爬虫简单教程——第二部

Python网络爬虫简单教程——第二部

python 爬虫 准备 请求网页得到源码 爬取标签内容

感谢,如需转载请注明文章出处:https://blog.csdn.net/weixin_44609873/article/details/103466974


Python 网络爬虫简单教程——第一部

Python 网络爬虫简单教程——第二部

Python 网络爬虫简单教程——第三部


上部呢,我们一起简单了解了爬虫的概念、用处,以及开发前的准备,现在一起来实现它吧 ^_ ^

  • python3

我用的是 python3,python2 也是可以的。

爬虫基本流程

只要是浏览器能做的事情,原则上,爬虫都能够做

①获取网页地址
有些网页地址一目了然,但是还有些网址需要我们在浏览器中经过分析得出。

②请求网页
主要是为了获取我们所需求的网址的源码,便于我们从中获取数据,这其中可能需要去利用到 User-Agent, User-Agent 可以隐藏身份,便于访问。具体以后会再讲。

③获取源码中的指定的数据
这就是我们所说的要爬取的数据内容,有些网页数据杂多,甚至会内嵌网页,就需要我们去找到并解析所需的数据内容,一般有三种方法:正则表达式 re 、Xpath 和 Beautiful Soup

④处理数据
爬取下来的数据有时候会包含一些如标签、符号等的我们不需要的数据,这时候处理数据就变得很有必要了。

⑤存储数据
爬虫最后一步,存储我们所爬数据,便于我们浏览使用,数据存储一般有文本、表格、文件夹等形式

小试牛刀

铺垫已做好,开始爬它

爬取百度网页:
首先导入我么所需要的包 qequests 、 beautifulsoup4 和 lxml
打开 cmd 依次输入:
pip install requests 等待安装完成,
pip install beautifulsoup4 等待安装完成
pip install lxml 等待安装完成
这是导入相关 python 库,注意,这里的 lxml 库 Windows 直接 pip 可能不成功 具体解决参考 Windows下如何安装python第三方库lxml
Python网络爬虫简单教程——第二部_第1张图片
安装过程可能有点慢,耐心等待全部安装完成后,输入 python 进入交互环境
再输入
import qequests
import bs4
import lxml
验证是否正确安装
Python网络爬虫简单教程——第二部_第2张图片
如上图所示,不报错为正确安装。

打开 pycharm,新建一个项目,这里就叫做 PaPa 吧!
Python网络爬虫简单教程——第二部_第3张图片
项目下新建一个 python 文件,Pachong1.py
Python网络爬虫简单教程——第二部_第4张图片
现在开始码代码吧 ,老生常谈,百度为例

import requests

# 爬取网页内容
resp = requests.get('https://www.baidu.com')
print(resp)  # 打印请求结果
print(resp.content)  # 打印爬取网站

运行一下,结果
Python网络爬虫简单教程——第二部_第5张图片
结果分析:< 200 > 说明网页正确响应了,不响应的话会报错 500 404 等等,但是纳尼!这都是源代码啊,不是应该是百度网页内容吗,不慌,小事情,这是因为 requests 请求的是网页源代码,而这些网页源码需要我们去解析自己所需的信息。

那网页源码我们拿到了,接下来就是要解析了。解析什么?解析我们需要的信息,python解析网页源码有很多种方法,比如 BeautifulSoupre 正则表达式、pyqueryXpath 等。
这里我使用的是 BeautifulSoup 和 lxml 搭配获取内容,这里的 lxml 是个非常有用的 python 库,它可以灵活高效地解析 xml,与BeautifulSoup、requests 结合,是编写爬虫的标准姿势。

百度不是链接多吗,好,今天就爬它链接,安排!

import requests
from bs4 import BeautifulSoup

# 爬取网页内容(源代码)
resp = requests.get('https://www.baidu.com')
print(resp)  # 打印请求结果
print(resp.content)  # 打印爬取网站源代码
print("\n")

# 爬取解析所有a标签对象href值
bsobj = BeautifulSoup(resp.content, 'lxml')
# a_list = bsobj.find_all('a')
a_list = bsobj.select('a')
text = ''
for a in a_list:
    href = a.get('href')
    print(href)  # 获取a标签对象的href属性,即这个对象指向的链接地址
    text += href + "\n"  # 加入 text 中并换行

# 在 D:/新建文件夹text文本中(w方式,没有则自动创建一个)写入上面得到的text数据
with open('D:/新建文件夹/text.txt', 'w') as f:
    f.write(text)


获取请求之后,我们用 BeautifulSoupselec() 函数 a_list = bsobj.find_all('a')a_list = bsobj.select('a') 两个都可以来选择链接,为什么用 a 呢,因为我们知道链接一般形如
在这里插入图片描述
网页内容是包含在标签 a 的 href 里的,于是我们再利用 href = a.get('href') 来获取属性 href 下内容。

运行结果:
Python网络爬虫简单教程——第二部_第6张图片
Python网络爬虫简单教程——第二部_第7张图片

好了最近忙,匆匆忙忙赶写了几天,也学到了很多 ,下次更新爬取网站笑话、图片、视频等(emmmm不知道是几天了),不过,一起加油!!!

谢谢观看!

你可能感兴趣的:(Python,Web前端,爬虫,python)