本帖最后由 l2430478 于 2021-1-11 11:23 编辑
笔记七已经爬取到数据,现在需要进行数据提取。
打开练习网址:http://www.santostang.com/ 右键检查。
单击左上角的鼠标键按钮,后在页面上单击想要的数据,下面的Elements会出现相应的code在的地方,就定位到想要的元素了。
我们复制教程代码,看能提取到什么?
[Python] 纯文本查看 复制代码 #!usr/bin/python
#coding: UTF-8
import requests
from bs4 import BeautifulSoup #从bs4这个库中导入BeautifulSoup
link = "http://www.santostang.com/" #爬取的网址
headers = { 'User-Agent': 'Mozilla/5.0 (Windows;U; Windows NT6.1;en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} #模拟用户浏览器性质
r = requests.get(link,headers = headers)
soup = BeautifulSoup(r.text,"lxml") #使用BeautifulSoup解析这段代码
title = soup.find("h2",class_="uptop").a.text.strip()
print (title)
alt+回车后,提取到数据 :《网络爬虫:从入门到实践》一书勘误。
分析代码含义,在实践网页中右键 查看网页源代码。
发现这里的数值和代码里有关联 title = soup.find("h2",class_="uptop")
我们尝试修改,看是否能提取其他数据。
[Python] 纯文本查看 复制代码 #!usr/bin/python
#coding: UTF-8
import requests
from bs4 import BeautifulSoup #从bs4这个库中导入BeautifulSoup
link = "http://www.santostang.com/" #爬取的网址
headers = { 'User-Agent': 'Mozilla/5.0 (Windows;U; Windows NT6.1;en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} #模拟用户浏览器性质
r = requests.get(link,headers = headers)
soup = BeautifulSoup(r.text,"lxml") #使用BeautifulSoup解析这段代码
title = soup.find("h1",class_="post-title").a.text.strip()
print (title)
提取了了新的数据如下:第四章 – 4.3 通过selenium 模拟浏览器抓取
分析: 这里用到BeautifulSoup这个库对爬下来的页面进行解析。首先需要导入这个库,然后把HTML代码转化为soup对象,接下来用soup.find("h 1 ", class_一”post-title").a.text,strip()得到第一篇文章的标题,并且一打印出来。 对初学者来说,使用eautifulSoup从网页中提取需要的数据更加简单易用。
-------------------数据存储(这些代码不需要你全部理解,会用就行,然后逐步理解更透彻,就可以进修改利用)
存储到本地的txt文件非常简单,在第二步的基础上加上3行代码就可以把这个字符串保存在text中,并存储到本地。txt文件地址应该和你的Python文件放在同一个文件夹。文件会自动生成,放在默认文件夹中。
[Python] 纯文本查看 复制代码 import requests
from bs4 import BeautifulSoup #从bs4这个库中导入BeautifulSoup
link = "http://www.santostang.com/" #爬取的网址
headers = { 'User-Agent': 'Mozilla/5.0 (Windows;U; Windows NT6.1;en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} #模拟用户浏览器性质
r = requests.get(link,headers = headers)
soup = BeautifulSoup(r.text,"lxml") #使用BeautifulSoup解析这段代码
title = soup.find("h1",class_="post-title").a.text.strip()
print (title)
with open('title.txt', "a+" ) as f:
f.write(title)
f.close()
cmd即显示了默认位置:
至此,一个简单的爬虫完成了。
|