美文网首页
完善了一点的爬虫

完善了一点的爬虫

作者: 佛系小沈 | 来源:发表于2020-04-19 13:21 被阅读0次

申明
本文章仅供学习使用


# -*- coding: utf-8 -*-
"""
-------------------------------------------------
   File Name:     baiduimag
   Description :
   Author :        xiaoshen
   date:          2020/3/10
-------------------------------------------------
   Change Activity:
                   2020/3/10:
-------------------------------------------------
"""
import requests
import re
import os
import random
import time

i = 0

def get_html(url):

    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
    
    try:
        html = requests.get(url,headers = headers)
        html.encoding = html.apparent_encoding#防止乱码,不一定所有网站都是utf-8
        if html.status_code == 200:
            print('成功获取源代码')
            # print(html.text)#这里是为了防止有些网站反爬虫,返回的值虽然是200但是源码已经不是原来的了
    except Exception as e:
        print('抓取源代码失败:%s' % e)

    return html.text

def parse_html(html):

    urls = re.findall('"objURL":"(.*?)"',html,re.S)  #在真正的源代码上查找一下objurl
    return urls

def downloadimg(urls,name):
    global i       #引用全局变量
    for url in urls:
        time.sleep(random.randint(1,3))#(1,3)代表1或者2这两个整数
        imag = requests.get(url,timeout = 6).content
        if imag:
            with open(str(i) + '.jpg','wb') as f:
                print('正在下载第 %d 张图片:%s' % (i + 1,url))
                f.write(imag)
            i += 1
        else:
            print('链接超时,图片下载失败')
    print('图片下载成功')

if __name__ == '__main__':

    word = input('请您输入您需要下载图片的关键字:')
    start = int(input("请输入起始页面:"))
    end = int(input("请输入终止页面:"))
    for page in (start,end+1):
        url = 'http://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=' + word +"page=" + str(page)
        try:
            html = get_html(url)
            imgurls = parse_html(html)
            downloadimg(imgurls,word)
        except:
            print("Wrong!")

这里比前面那个爬虫完善的地方在于:
1.引用了try except,不至于出一点错就全部崩溃
2.使用了函数,使得代码更容易读懂
3.可以控制开始及结束的页面


欢迎讨论~

相关文章

  • 完善了一点的爬虫

    申明本文章仅供学习使用 这里比前面那个爬虫完善的地方在于:1.引用了try except,不至于出一点错就全部崩溃...

  • Python爬虫的概括以及实战

    主要讲解爬虫相关的知识如:http、网页、爬虫法律等,让大家对爬虫有了一个比较完善的了解和一些题外的知识点。 ​我...

  • 构建基础python爬虫思路

    目的意义 基础爬虫分5个模块,使用多个文件相互配合,实现一个相对完善的数据爬取方案,便于以后更完善的爬虫做准备。 ...

  • Python爬虫的起点

    第一章主要讲解爬虫相关的知识如:http、网页、爬虫法律等,让大家对爬虫有了一个比较完善的了解和一些题外的知识点。...

  • 简易爬虫:爬取pubmed搜索结果doi号并进行文献下载

    爬虫是python的强项,也是其热门应用领域,有很多完善成熟的爬虫模块/库,像是scrapy、selenium、b...

  • 和我一起来实现一个ORM

    最近在做Tech Builds的新闻页的时候,用到了很多爬虫方面的技术。虽说在爬虫方面已经有较为完善的Scrapy...

  • 多线程爬虫(完善版)

    import threading from queue import Queue import time from...

  • BeautifulSoup爬虫之修改Headers以及ip

    “ 今天这一篇主要是对bs4爬虫的完善,加上一些反爬虫的操作以及更正规的脚本写法。本来还打算再学两个爬虫的库的,但...

  • 使用python+微博进行远程关机

    很长一段时间没有更新简书的内容了,打算把微博爬虫完善得差不多之后,再系统的把做微博爬虫的每个模块和阶段都记录下来。...

  • 3 Scrapy 爬取(2)

    根据前面的知识可以写出一个简单的爬虫,再一步步完善它 在爬虫的根目录中输入命令scrapy crawl quotes

网友评论

      本文标题:完善了一点的爬虫

      本文链接:https://www.haomeiwen.com/subject/guhpbhtx.html