初学爬虫(一):编写第一个爬虫程序:获取页面、提取需要的数据、如何精准定位标题的HTML代码位置、存储数据

news/2024/7/19 10:48:52 标签: python, 编程语言, 爬虫

注意:
爬虫是需要基础python知识的,若没有学习过python,可见我的python入门使用系列博客:python入门使用(一):运行方式and基本命令

下面以爬取我的博客python入门使用(一):运行方式and基本命令为例来获取文章的标题名称:

1、获取页面

python">import requests #引入包requests
link = "https://blog.csdn.net/qq_45154565/article/details/109261945" #将目标网页的网址定义为link

# 定义请求头的浏览器代理,伪装成火狐浏览器
headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} 

r = requests.get(link, headers= headers) #请求网页,r是requests的response回复对象,可以从中获取想要的信息
print (r.text)  #r.text是获取的网页内容代码

在这里插入图片描述
在这里插入图片描述

从上述输出结果可以看出文章的标题等内容,它其实获取的是博客页面的HTML代码(一种用来描述网页的语言,我后续会更新博客学习),大家可以理解成网页上呈现出来的内容都是HTML代码。

2、提取需要的数据

在获取整个页面的HTML代码后,就可以从整个网格网页中提取出文章的标题了。

python">import requests
from bs4 import BeautifulSoup     #从bs4这个库中导入BeautifulSoup

link = "https://blog.csdn.net/qq_45154565/article/details/109261945"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} 
r = requests.get(link, headers= headers)

soup = BeautifulSoup(r.text, "html.parser")  #使用BeautifulSoup解析这段代码,把HTML代码转化为soup对象

#用soup.find函数找到文章标题,定位到class是"post-title"的h1元素,提取a,提取里面的字符串,strip()去除左右空格
title = soup.find("h1", class_="title-article")
print (title)

在这里插入图片描述
由上图可见,已经提取了指定的标题内容。
在这里插入图片描述

3、如何精准定位标题的HTML代码位置

在2中的代码中可以看到这一句代码

python">#用soup.find函数找到文章标题,定位到class是"post-title"的h1元素,提取a,提取里面的字符串,strip()去除左右空格
title = soup.find("h1", class_="title-article")

那么soup.find函数中的这些参数是怎么决定的呢?请看下面解释

(1)在浏览器右键 > 检查元素(IE)/检查(谷歌)

以下以IE浏览器为例,谷歌同理:
在这里插入图片描述
会出现以下界面:
在这里插入图片描述
右侧显示的即为HTML代码

(2)点击HTML代码界面左上角的鼠标:

在这里插入图片描述
然后用鼠标点击页界面的任意位置,就会出现其对应的HTML代码板块(呈蓝色):
在这里插入图片描述

4、存储数据

python">#coding: utf-8
import requests
from bs4 import BeautifulSoup   #从bs4这个库中导入BeautifulSoup

link = "https://blog.csdn.net/qq_45154565/article/details/109261945"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} 
r = requests.get(link, headers= headers)

soup = BeautifulSoup(r.text, "html.parser")   #使用BeautifulSoup解析这段代码,把HTML代码转化为soup对象

#用soup.find函数找到文章标题,定位到class是"post-title"的h1元素,提取a,提取里面的字符串,strip()去除左右空格
title = soup.find("h1", class_="title-article")
print (title.text)

title1 = str(title)
# 打开一个空白的txt,然后使用f.write写入刚刚的字符串title
with open('title1.txt', "a+") as f:
    f.write(title1)

在这里插入图片描述
生成的txt文本:
在这里插入图片描述


http://www.niftyadmin.cn/n/948545.html

相关文章

初学爬虫(二):爬取静态网页之(1)安装requests库

1、什么是静态网页? 静态网页一般指的是纯粹HTML的网页。 静态网页的所有数据都呈现在网页的HTML代码中,所以静态网页的数据是比较容易获取的。 2、为什么要安装requests库? requests库是一个功能十分强大且完善的库,它能帮助我…

初学爬虫(二):爬取静态网页之(2)获取网页响应内容——requests.get()函数

下面根据一个实例来讲解如何通过requests.get()函数来获取网页响应的内容: 这是CSDN主页的截图: 获取上图主页内容的代码: import requests #导入requests库#使用requests.get()函数获取指定网页的内容,返回的是一个response相…

初学爬虫(二):爬取静态网页之(3)自定义requests——设置传递URL(网络地址)参数and自定义请求头(怎么找+怎么做)

在初学爬虫(二):爬取静态网页之(2)获取网页响应内容——requests.get()函数中讲解了如何使用requests函数获取网页响应内容。 但是,有些网页不能如上直接被获取,而是需要对requests中的参数进行…

初学爬虫(二):爬取静态网页之(3)自定义requests——发送POST请求and超时处理

1、发送POST请求 从前面初学爬虫(二):爬取静态网页之(3)自定义requests——设置传递URL(网络地址)参数and自定义请求头(怎么找怎么做)中已经讲解过通过get函数设置传递U…

初学数据挖掘——数据探索(六):数据特征分析之相关性分析

相关性分析即分析连续变量之间线性相关程度的强弱,并用合适的统计量或统计图表示出来的过程。 如现在想要分析得到不同菜品之间的相关关系,则可以通过分析这些菜品日销售量之间的相关性来得到。 代码如下: #导入相关包 from __future__ im…

初学爬虫(二):爬取静态网页之(4)使用requests库进行爬虫实践——获取豆瓣电影TOP250的电影名字全过程详解

本实践目的是获取豆瓣电影TOP250的所有电影的名称。 豆瓣电影TOP250网页链接:https://movie.douban.com/top250 1、分析网站 (1)提取请求头 这里以提取谷歌请求头为例: ①双击打开谷歌: ②在页面任意位置单击右键…

初学爬虫(三):使用selenium模拟浏览器抓取动态网页之(1)安装selenium库and对selenium库的基本使用

1、安装selenium库 直接使用最简单的pip命令安装: pip install selenium2、selenium库的基本使用 (1)下载geckodriver(Firefox)/chromedriver(Google chrome) 下面以下载geckodriver为例(读者电脑上若还未安装Firefox火狐浏览…

geckodriver的下载、安装与配置

1、下载geckodriver压缩包 链接:https://pan.baidu.com/s/1u8_lFbCWSc3Bux2Win0v-Q 提取码:2677 下载好后的geckodriver压缩包: 2、解压geckodriver 将1中下载好的geckodriver压缩包解压得到exe文件: 3、将2中得到的exe文件…