第一个爬虫脚本

这是制作的第一个爬虫脚本,主要实现的功能就是解析指定网站中指定的照片地址,然后保存到本地。

代码部分:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re

i = 0
def get_content(page):
    global i
    page = str(page)
    url = "网站地址?page=" + page #保证可以获取多页内容
    html = urlopen(url)
    bsObj = BeautifulSoup(html, "html.parser")
    images = bsObj.findAll("img", {"src": re.compile("\d+\.jpg")}) #使用正则把图片的URL筛选出来

    while i < 5: #i是页数
        for image in images: #使用for循环抓取不同页数的图片
            photo_url = "网站的绝对地址" + image["src"] #图片地址
            print(photo_url) #输出图片地址
            f = open(str(re.sub(r"\D+", "0", image["src"])) + ".jpg", "wb")  # 利用正则替换命名图片名称,并保存到当前文件夹
            req = urlopen(photo_url)
            buf = req.read()  # 读出文件
            f.write(buf)  # 写入文件
            print("正在下载中...")
        i = i + 1
        print ("这是第", i, "页")
        get_content(i) #进行下一页的抓取

get_content(i)

这是我完成的第一个比较成功的爬虫脚本,整段代码很个性,不具有代表性。实现的功能也少之又少,可能不能被别的网址所使用,主要是看思路。写完这个脚本以后,我暂时总结出了制作爬虫脚本的思路,可能不是很严谨。

  1. 找到需要爬取网站的HTML标签的规律
  2. 选择合适的筛选条件,可以利用正则或者是标签数量等条件
  3. 判断采集的信息是否有效
  4. 保存本地或数据库

这段代码是第一个爬取图片的代码,虽然花费了很多时间,解决了一些问题,但仍然存在一些问题需要在以后的版本中解决:

  1. 抓取更多不同的网页
  2. 利用异常机制控制页数,在没有图片的时候停止
  3. 在没有图片停止之后,自动开始抓取另一网页内容
  4. 改变文件保存的位置

本来是想多定义几个函数看着更清楚一些,但是能力有限,改的改的最后全都放到一个函数中了,不过下载图片的目的是实现了,还是不错的。

发布了72 篇原创文章 · 获赞 42 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/A_lPha/article/details/54296695