版权声明:本文为博主原创文章,转载请备注https://blog.csdn.net/travelerwz。 https://blog.csdn.net/Travelerwz/article/details/83478701
爬取嗅事百科
今天我们利用requests和bs4来爬取嗅事百科的内容。
爬取步骤:
- 分析网页结构
- 利用request来获取网页内容
- 利用bs4来筛选网页内容
- 打印或者保存网页内容
接下来,我们一步一步来完成这些事
1.分析网页结构
由此可知,段子里面的容都是存储在
这个标签下的
标签中,所以我们可以利用bs4来进行删选。
2.利用request来获取网页内容
#模拟浏览器
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
#获取网页内容
r = requests.get('http://www.qiushibaike.com', headers = headers).text
3.利用bs4来筛选网页内容
#利用lxml解析网页内容
soup = BeautifulSoup(r, 'lxml')
#找到所有上面的内容的标签
divs = soup.find_all('div',attrs={'class':'content'})
4.将内容打印出来
#打印所有的内容
for div in divs:
contents = div.span.get_text()
print(contents)
#打开文件,写入内容
with open('C:\\Users\\Administrator\\Desktop\\11.txt','a') as f:
f.write(contents)
总程序:
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
r = requests.get('http://www.qiushibaike.com', headers = headers).text
soup = BeautifulSoup(r, 'lxml')
divs = soup.find_all('div',attrs={'class':'content'})
print(divs)
for div in divs:
contents = div.span.get_text()
with open('C:\\Users\\Administrator\\Desktop\\11.txt','a',encoding='utf-8') as f:
f.write(contents)
print(contents)
我们做一个比较全面的,爬取某页的嗅事百科
看一下这两张图片,就知道了区别了
可以看出来,url的地址是不一样的,区别就是最后这个数字,这样我们就很好去选择了。
代码:
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
#传入参数,第几页的参数
def pages(num):
url = 'https://www.qiushibaike.com/8hr/page/'+'str(num)'
r = requests.get(url, headers = headers).text
soup = BeautifulSoup(r, 'lxml')
divs = soup.find_all('div',attrs={'class':'content'})
print(divs)
for div in divs:
contents = div.span.get_text()
with open('C:\\Users\\Administrator\\Desktop\\11.txt','a',encoding='utf-8') as f:
f.write(contents)
print(contents)
pages(5)