爬取嗅事百科


今天我们利用requests和bs4来爬取嗅事百科的内容。


爬取步骤:

  • 分析网页结构
  • 利用request来获取网页内容
  • 利用bs4来筛选网页内容
  • 打印或者保存网页内容

接下来,我们一步一步来完成这些事
1.分析网页结构
requests与BeautifulSoup爬取嗅事百科
由此可知,段子里面的容都是存储在

这个标签下的标签中,所以我们可以利用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)

我们做一个比较全面的,爬取某页的嗅事百科
看一下这两张图片,就知道了区别了
requests与BeautifulSoup爬取嗅事百科requests与BeautifulSoup爬取嗅事百科
可以看出来,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)

相关文章:

  • 2021-08-04
  • 2021-10-02
  • 2022-12-23
  • 2021-07-17
  • 2021-05-20
  • 2021-12-18
  • 2021-10-21
猜你喜欢
  • 2021-11-01
  • 2021-10-27
  • 2022-12-23
  • 2021-07-01
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案