哈哈,小编今天用python写了第一个爬虫,现在和大家分享一下,其实呢爬虫就是模拟了我们使用浏览器发送http请求,自动的批量的获取我们需要的资源,然后把获取到的资源处理下。得到我们想要的数据。小编呢这里使用的事python3,并且安装了一个依赖包requests,需要的话自己可以安装一个哦。小编这个爬虫写的比较的简单,就是爬取基本的网页,没有太高的技术水准。下面说下开发的步骤吧。
步骤:

  • 分析要爬出的网页的结构
  • 下载数据
  • 处理数据
  • 数据持久化

程序源码

import requests
import re

# 需要爬取网页的地址
url = 'https://###'

# 模拟一个http的请求
response = requests.get(url)
# 设置请求回来之后的字符串的编码格式,这个根据的事你爬取网页的编码保持一致
response.encoding = 'gbk'
# 爬取网页的源码
html = response.text
# 获取小说名称,这个需要结合你爬取的网页内容来定
title = re.findall(r'<meta property="og:novel:book_name" content="(.*?)"/>', html)[0]
# 新建一个文本来保存爬取到的数据,并且用小说名称来命名,设置编码格式
fb = open('%s.txt' % title, 'w', encoding='utf-8')

# 获取小说章节列表(根据爬取的网页数据来定)
dl = re.findall(r'<div id="list">.*?</div>', html, re.S)[0]
chapter_info_list = re.findall(r'href="(.*?)"(.*?)<', dl)

# 取出小说名称以及URL,并获取小说的章节内容
for chapter_info in chapter_info_list:
    # 取出小说名称以及URL
    chapter_url, chapter_title = chapter_info
    # 拼接章节完整的URL
    chapter_url = "https://###%s" % chapter_url
    # 获取小说内容
    chapter_response = requests.get(chapter_url)
    chapter_response.encoding = 'gbk'
    chapter_html = chapter_response.text
    # 处理获取到的数据
    chapter_content = re.findall(r'<div id="content" name="content">(.*?)</div>', chapter_html, re.S)[0]
    chapter_content = chapter_content.replace(' ', '')
    chapter_content = chapter_content.replace('&nbsp;', '')
    chapter_content = chapter_content.replace('<br />', '')
    chapter_content = chapter_content.replace('<br/>', '')

    # 把数据存储到文本文件中
    fb.write(chapter_title)
    fb.write(chapter_content)
    fb.write('\n')
    print(chapter_url)

print("======end======")
Last modification:June 30th, 2019 at 09:52 pm
If you think my article is useful to you, please feel free to appreciate