• python爬虫_入门


    本来觉得没什么可写的,因为网上这玩意一搜一大把,不过爬虫毕竟是python的一个大亮点,不说说感觉对不起这玩意
    基础点来说,python2写爬虫重点需要两个模块,urllib和urllib2,其实还有re
    先介绍下模块的一些常用功能
    urllib.urlopen('http://xxx.xxx.xxx') #打开一个网址,只是打开,和open差不多
    urllib2.Request(url) #解析网址,这个可以省略,具体不是很懂,一些功能,比如加head头什么的也需要使用这个
    urllib.urlretrieve(url,filename) #下载用,把url提供的东西down下来,并用filename保存
    举个蜂鸟爬图片的例子,下面上伪代码:

    1、url解析
    2、打开url
    3、读取url,就是read()
    4、使用re.findall找到所有和图片有关系的地址,这里只jpg
    5、循环下载

    看图上,图片链接格式是src="http://index_url/page_num/image_name.jpg?XXXXXXX",那么如果需要下载的话一定是需要红圈部分,也就是http://index_url/page_num/image_name.jpg
    分析之后后面的事就好办了,下面上代码

    import urllib
    import urllib2
    import re
    
    #处理地址,并获取页面全部的图片地址
    def get_image_url(url):
      #url_format = urllib2.Request(url) #1
      url_open = urllib.urlopen(url) #2
      url_read = url_open.read() #3
      re_value = re.compile('(?<=src=").*?.jpg')
      image_url_list = re.findall(re_value,url_read) #4
      return image_url_list
    
    #这个函数专门用来下载,前面两行是将图片连接中/前面的内容全部删除,留下后面的文件名用来保存文件的,try不说了,不清楚请翻回去看容错
    def down_image(image_url):
      rev = '^.*/'
      file_name = re.sub(rev,'',image_url)
      try:
        urllib.urlretrieve(image_url,file_name)
      except:
        print 'download %s fail' %image_url
      else:
        print 'download %s successed' %image_url
    
    if __name__ == '__main__':
      url = 'http://bbs.fengniao.com/forum/10384633.html'
      image_url_list = get_image_url(url)
      for image_url in image_url_list:
        down_image(image_url) #5

    困死,睡觉去。。。。。有时间再说说翻页什么的,就能爬网站了

  • 相关阅读:
    现在转战c++的领域,纯幼儿园
    LeetCode:Majority Element
    LeetCode:Partition List
    LeetCode:Balanced Binary Tree(判断是否为二叉平衡树)
    LeetCode:Binary Tree Zigzag Level Order Traversal
    LeetCode:Binary Tree Level Order Traversal II (按层遍历)
    LeetCode:Binary Tree Postorder Traversal(二叉树的后序遍历)
    LeetCode:BInary Tree Inorder Traversal(二叉树的中序遍历)
    LeetCode:Binary Tree Preorder Traversal(二叉树的先序遍历)
    LeetCode:Implement Queue using Stacks
  • 原文地址:https://www.cnblogs.com/xiu123/p/8463931.html
Copyright © 2020-2023  润新知