python制作简单的爬虫

本文介绍了一款简单爬虫的实现过程,该爬虫能够从指定网站抓取图片资源并保存到本地。通过解析网页源码,提取图片链接,并使用Python标准库完成下载任务。

该爬虫只是简单的爬取了一个小网站上的图片:


# encoding:utf-8
import urllib
import re
import os
#该函数传入URL获得该url所对应的html源代码
def gethtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html
#该函数传入html源码,返回源码中的图片链接list
def getimagesurl(html):
    reg = 'src="(http://.*?\.jpg)"'
    imageurllist = re.findall(reg,html)
    return imageurllist


#根据文件名创建文件
def createFileWithFileName(localPathParam,fileName):
    totalPath=localPathParam+'\\'+fileName
    if not os.path.exists(totalPath):
        file=open(totalPath,'a+')
        file.close()
        return totalPath
#传入image连接的list将图片存到本地文件
def saveimages(imageurllist):
    name = 0
    for imageurl in imageurllist:
        print imageurl
        #urllib.urlretrieve('E:\\tupian','{}.jpg'.format(name))
        localPath = 'E:\\tupian'
        urllib.urlretrieve(imageurl,createFileWithFileName(localPath,'{}.jpg'.format(name)))
        name+=1

#这里是代码的入口
html = gethtml("http://www.ivsky.com/tupian/ziranfengguang")
imageurllist = getimagesurl(html)
saveimages(imageurllist)

打印结果:

http://img.ivsky.com/img/tupian/li/201604/07/haishang_riluo_fengjing-001.jpg
http://img.ivsky.com/img/tupian/li/201603/31/weimei_de_chengshi_yese-003.jpg
http://img.ivsky.com/img/tupian/li/201603/25/tianye-002.jpg
http://img.ivsky.com/img/tupian/li/201603/25/shulin-001.jpg
http://img.ivsky.com/img/tupian/li/201603/06/hailang-002.jpg
http://img.ivsky.com/img/tupian/li/201603/05/heliu.jpg
http://img.ivsky.com/img/tupian/li/201603/05/hailang-007.jpg
http://img.ivsky.com/img/tupian/li/201602/27/richu-003.jpg
http://img.ivsky.com/img/tupian/li/201602/27/caihong-002.jpg
http://img.ivsky.com/img/tupian/li/201602/17/haibian_jiaoshi-001.jpg
http://img.ivsky.com/img/tupian/li/201602/17/jinse_de_maitian.jpg
http://img.ivsky.com/img/tupian/li/201602/19/chuchun-002.jpg
http://img.ivsky.com/img/tupian/li/201602/16/yuzhou-006.jpg
http://img.ivsky.com/img/tupian/li/201602/16/titian.jpg
http://img.ivsky.com/img/tupian/li/201602/13/yunhai-004.jpg
http://img.ivsky.com/img/tupian/li/201602/14/bingchuan-002.jpg
http://img.ivsky.com/img/tupian/li/201602/01/aurora_borealis.jpg
http://img.ivsky.com/img/tupian/li/201601/30/sea-007.jpg

这里我们同时将每个连接所对应的图片写到了本地文件

Python制作爬虫(网络爬虫),主要是利用其强大的数据处理能力和丰富的第三方库来自动化从互联网上获取信息的过程。Python爬虫主要依赖以下几个步骤和技术: 1. **选择库**:Python有多种用于爬虫的库,如BeautifulSoup、Scrapy、Requests等。`Requests`库常用于发送HTTP请求获取网页内容,而`BeautifulSoup`则用于解析HTML文档提取所需的数据。 2. **发送请求**:通过`requests.get()`或`post()`等函数向目标网站发出请求,并接收服务器返回的HTML或JSON等格式的数据。 3. **解析数据**:使用`BeautifulSoup`或`lxml`等库解析HTML结构,找到需要的信息,比如XPath或CSS选择器可以帮助定位元素。 4. **数据存储**:获取的数据可能需要清洗和处理后,存储到文件(CSV、JSON、数据库)、Excel表格或是数据挖掘工具(如Pandas DataFrame)中。 5. **处理反爬机制**:为了尊重网站的robots.txt协议,避免被封IP,可能需要设置延迟、代理IP池、处理验证码等问题。 6. **遵守法律**:在编写爬虫时,务必遵守相关法律法规,不得侵犯他人隐私或违反版权法。 7. **异常处理**:考虑到网络不稳定性和网站结构变化,需要添加适当的错误处理和异常捕获。 一个简单爬虫示例可能会像这样: ```python import requests from bs4 import BeautifulSoup url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") # 查找并提取目标数据 data_elements = soup.find_all("div", class_="target_class") for element in data_elements: print(element.text) # 数据保存至文件或其他地方 with open("output.txt", "w") as file: file.write(str(data_elements)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值