编写第一个简单的爬虫
第一步:获取页面
import requests #导入requests包
link = "http://www.santostang.com/" #定义link 为目标网页地址
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0'}
#定义请求头的浏览器,伪装成浏览器
r = requests.get(link, headers= headers) #请求网页
print(r.text) #t.text 是获取网页内容代码

第二步:提取需要的数据
import requests #导入requests包
from bs4 import BeautifulSoup #从bs4 这个库中导入beautifulSoup
link = "http://www.santostang.com/" #定义link 为目标网页地址
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0'} #定义请求头的浏览器,伪装成浏览器
r = requests.get(link, headers= headers) #请求网页
soup = BeautifulSoup(r.text, "html.parser") # 使用beautifulSoup 解析html页面
title = soup.find("h1",class_="post-title").a.text.strip() #找到文章标题,定位到class是"post-title"的h1元素,提取a元素,提取a元素里面的字符串,strip()去除左右空格
print(title)
在获取整个页面的HTML代码后,我们需要从整个网页中提取文章的标题。这里用到BeautifulSoup这个库对页面进行解析。
首先需要导入这个库,然后把HTML代码转化为soup对象,接下来用soup.find("h1", class="post-title").a.text.strip()得到文章的标题,并且打印出来。soup.find("h1", class="post-title").a.text.strip()的意思是,找到文章标题,定位到class是"post-title"的 h1元素,提取a元素,提取a元素里面的字符串,strip()去除左右空格。


第三步:存储数据
存储到本地的txt文件非常简单,在第二步的基础上加上2行代码就可以把这个字符串保存在text中,并存储到本地。txt文件地址应该和你的Python文件放在同一个文件夹。
import requests #导入requests包
from bs4 import BeautifulSoup #从bs4 这个库中导入beautifulSoup
link = "http://www.santostang.com/" #定义link 为目标网页地址
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0'} #定义请求头的浏览器,伪装成浏览器
r = requests.get(link, headers= headers) #请求网页
soup = BeautifulSoup(r.text, "html.parser") # 使用beautifulSoup 解析html页面
title = soup.find("h1",class_="post-title").a.text.strip() #找到第一篇文章标题,定位到class是"post-title"的h1元素,提取a元素,提取a元素里面的字符串,strip()去除左右空格
print(title)
#打开一个空白的txt,然后使用f.write 写入刚刚的字符串title
with open('title_text.txt',"a+") as f:
f.write(title)


Last updated
Was this helpful?