参考书目 《python网络爬虫从入门到实践》唐松
2.4 编写第一个简单的爬虫
2.4.1 第一步:获取页面
import requests
url = "http://www.santostang.com/"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3766.400 QQBrowser/10.6.4163.400'}
r = requests.get(url, headers = headers)
print(r.text)#获取网页内容代码
2.4.1 第二步:提取需要的数据
import requests
from bs4 import BeautifulSoup
url = "http://www.santostang.com/"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3766.400 QQBrowser/10.6.4163.400'}
r = requests.get(url, headers = headers)
soup = BeautifulSoup(r.text, "html.parser")#使用beautifulsoup解析
#单击“检查”命令,找到第一篇文章标题,定位到class=post-title的h1元素,提取a以及里面的字符串,再用strip()去除左右空格
title = soup.find("h1", class_="post-title").a.text.strip()
print(title)
问题1: class后面为什么有"_"下划线
问题2: ".a.text"为什么没有把该章节的链接一起提取出来
2.4.1 第三步:存储数据
import requests
from bs4 import BeautifulSoup
url = "http://www.santostang.com/"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3766.400 QQBrowser/10.6.4163.400'}
r = requests.get(url, headers = headers)
soup = BeautifulSoup(r.text, "html.parser")#使用beautifulsoup解析
title = soup.find("h1", class_="post-title").a.text.strip()
print(title)
#打开一个空白的txt文件,使用f.write写入刚刚的字符串title
with open('title_test.txt', "a+") as f:
f.write(title)
#txt文件地址要和python文件放在同一个文件夹