首页 > Python

Python爬取糗事百科

爬虫也称网页蜘蛛,主要用于抓取网页上的特定信息。这在我们需要获取一些信息时非常有用,比如我们可以批量到美图网站下载图片,批量下载段子。省去手工操作的大量时间。爬虫程序一般是通过模拟浏览器对相应URL发出请求,获取数据,并通过正则等手段匹配出页面中我们所需的数据。
import requests
from bs4 import BeautifulSoup


def download_page(url):
   headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"}
   r = requests.get(url, headers=headers)  # 增加headers, 模拟浏览器
   return r.text


def get_content(html, page):
   output = """第{}页 作者:{} 性别:{} 年龄:{} 点赞:{} 评论:{}\n{}\n------------\n""" # 最终输出格式
   soup = BeautifulSoup(html, 'html.parser')
   con = soup.find(id='content-left')  # 如图一红色方框
   con_list = con.find_all('div', class_="article")  # 找到文章列表
   for i in con_list:
       author = i.find('h2').string  # 获取作者名字
       content = i.find('div', class_='content').find('span').get_text()  # 获取内容
       stats = i.find('div', class_='stats')
       vote = stats.find('span', class_='stats-vote').find('i', class_='number').string
       comment = stats.find('span', class_='stats-comments').find('i', class_='number').string
       author_info = i.find('div', class_='articleGender')  # 获取作者 年龄,性别
       if author_info is not None:  # 非匿名用户
           class_list = author_info['class']
           if "womenIcon" in class_list:
               gender = '女'
           elif "manIcon" in class_list:
               gender = '男'
           else:
               gender = ''
           age = author_info.string   # 获取年龄
       else:  # 匿名用户
           gender = ''
           age = ''

       save_txt(output.format(page, author, gender, age, vote, comment, content))


def save_txt(*args):
   for i in args:
       with open('qiubai.txt', 'a', encoding='utf-8') as f:
           f.write(i)


def main():
   # 我们点击下面链接,在页面下方可以看到共有13页,可以构造如下 url,
   # 当然我们最好是用 Beautiful Soup找到页面底部有多少页。
   for i in range(1, 14):
       url = 'https://qiushibaike.com/text/page/{}'.format(i)
       html = download_page(url)
       get_content(html, i)

if __name__ == '__main__':
   main()


本文由用户 【小菜鸟】 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。

转载本站原创文章,请注明出处,并保留原始链接、图片水印。

本站是一个以用户分享为主的开源技术平台,欢迎各类分享!

本文地址:http://www.mj85.com/python/27.html

分享:

评论 [共0条评论]

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

您现面为匿名用户,暂不能发表评论。如想评论则请登录注册

相关内容

发布者

小菜鸟 发于:

19年/04月/25日 11时

查看次数: 226

标签 Tags

爬虫

谁收藏了?

0人已收藏