简单的Python抓百度贴吧帖子爬虫

2017年12月2日22:14:44 1 17

之前自学了5个月的python,也是那个时候学了一点简单的爬虫,首先这源码运行必须要配置好python的运行环境,其次用个编辑器运行,当然也可以直接运行在cmd中,有能力的小伙伴可以完善一下这源码,可以加个“搜索多少瓣帖子”,”自动导出到excel“等一系列的功能。

下面是源码图和运行的状态:

简单的Python抓百度贴吧帖子爬虫

简单的Python抓百度贴吧帖子爬虫

 

 

下面是简单的Python爬百度贴吧帖子源码:

  1. import requests
  2. from bs4 import BeautifulSoup
  3. import re
  4. import time
  5. from urllib.parse import quote
  6. # 获取页面源码的函数
  7. def get_html(url):
  8.     res = requests.get(url)
  9.     return res.text
  10. # 获取贴吧的最后的页数
  11. def number_html():
  12.     url = 'https://tieba.baidu.com/f?kw=' + tieba_name + '&ie=utf-8&pn=1'
  13.     html = get_html(url)
  14.     soup = BeautifulSoup(html, 'lxml')
  15.     urls = soup.select('#frs_list_pager a')[-1]['href']
  16.     NumberPage = urls.find('pn=')+3
  17.     all_url(urls[NumberPage:])
  18. def all_url(number):
  19.     n = 1
  20.     for i in range(0,int(number)+50,50):
  21.         urls = 'https://tieba.baidu.com/f?kw=' + tieba_name + '&ie=utf-8&pn={}'
  22.         url = urls.format(i)
  23.         print('第', n ,'页爬取开始了')
  24.         tieba(url)
  25.         n += 1
  26. # 具体爬取数据的函数
  27. def tieba(url):
  28.     # time.sleep(3)
  29.     html = get_html(url)
  30.     soup = BeautifulSoup(html, 'lxml')
  31.     titles = soup.find_all('div', class_='threadlist_title pull_left j_th_tit ')
  32.     names = soup.find_all('span', class_='frs-author-name-wrap')
  33.     intros = soup.find_all('div', class_='threadlist_abs threadlist_abs_onlyline ')
  34.     # endreturns = soup.find_all('span', class_='tb_icon_author_rely j_replyer')
  35.     replys = soup.find_all('span', class_='threadlist_rep_num center_text')
  36.     links = soup.find_all('a', class_='j_th_tit ')
  37.     for i,x,j,e,m in zip(titles,names,intros,replys,links):
  38.         title = i.get_text().strip()
  39.         name = x.get_text().strip().replace(' ','')
  40.         intro = j.get_text().strip()
  41.         # endreturn = e.get_text()
  42.         reply = e.get_text()
  43.         link = 'https://tieba.baidu.com' + m['href']
  44.         print('标题:%s\n发帖人:%s\n详细说明:%s\n回复数:%s\n链接:%s' % (title, name,intro,reply,link))
  45.         print('------------------------------------------>>>')
  46. if  __name__ == '__main__':
  47.     tieba_names = input('请输入贴吧的名称:')
  48.     tieba_name = quote(tieba_names)
  49.     number_html()

须注意的是代码中有依赖的库,要自行安装才可以正常运行的,有什么不懂或者感兴趣的欢迎留言和我交流!

 

猿梦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar 123456 来自天朝的朋友 谷歌浏览器 Windows 7 2

      淘宝的爬虫怎么做呢