requests与BeautifulSoup爬取嗅事百科

版权声明:本文为博主原创文章,转载请备注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)

猜你喜欢

转载自blog.csdn.net/Travelerwz/article/details/83478701