zoukankan      html  css  js  c++  java
  • python学习虫师笔记 (一)

    虫师博客:http://www.cnblogs.com/fnng/p/3576154.html

    我的笔记

    初期:一开始学习python是通过看书 第一本python的书叫《python核心编程》美:wesley j.chun第二本是C语言的书叫《C primer plus》看了一半又停了,学习曲线太陡,没什么兴奋感, 看完就忘了,因为光看不做, 一年又一年还是不会,但我想学变成的心没变

    现在:于是在前几天2016/8/5,我开始直接上手做,不会的查书,搜google、百度  

    英语方面,一直在看英文小说,每天一章的进展,现在差不多看完6/7本的样子 如果有人想通过看书学英文,我看过的英文书单可以以后更新出来 都是简单但需要坚持的

    开始写博客记录学习

    项目(一) 如何开始,从有趣经常用的地方开始,那不就是网络了,和网络相关的不就是爬虫(就是如何把网上好玩的信息copy到自己的文件夹里)了吗?

    于是搜索 python 爬虫 第一个http://www.cnblogs.com/fnng/p/3576154.html就是虫师的博客园

    上手复制,改动 而不是看书把每一个地方弄清,首先培养兴趣

    于是直接把虫师的内容复制下来,在python上运行观察学习(因为我觉得写得还是有点难,所以我加了很多注释帮助大家,复制的时候注释去不去掉随你,不影响运行)

     1 #coding=utf-8
     2 import urllib                  #urlib模块,一个标准库,接受url请求等
     3 
     4 def getHtml(url):              #自定义一个函数用来获取html代码 
     5     page = urllib.urlopen(url) #urllib的一个方法,用来打开url
     6     html = page.read()         #read方法用来读取
     7     return html                #读取的内容存入html,并返回到getHtml
     8 
     9 html1 = getHtml("http://tieba.baidu.com/p/4590525889?da_from=ZGFfbGluZT1EVCZkYV9wYWdlPTEmZGFfbG9jYXRlPXAwMDY0JmRhX2xvY19wYXJhbT0zJmRhX3Rhc2s9dGJkYSZkYV9vYmpfaWQ9MjM3MDYmZGFfb2JqX2dvb2RfaWQ9NDM3ODYmZGFfdGltZT0xNDcwNDg4MjM2&da_sign=58a0c29287d6df1817926ce918cd05eb&tieba_from=tieba_da")
    10 #主程序  返回的html内容存入html1中,并在接下来的print中打印下来 网址随便换
    11 print html1           #输出html1内容

    补充:urllib2与urllib 前者既可以通过request类设置headers(这个用来模拟也就是伪装成人浏览网页)也接受url,而后者只可以接受url不能伪装,比如糗事百科最近改版,以前直接把上面的网页一换就可以弄下来html的代码,现在需要加入headers进行检验,urllib这个模块就束手无策了

     

    项目(二)自动下载图片改名并存入本地

    
    
     1 #coding=utf-8
     2 import urllib
     3 import re              #用到了正则表达式模块,用来筛选、、搜索、匹配的强大模块
     4 
     5 def getHtml(url):
     6     page = urllib.urlopen(url)
     7     html = page.read()
     8     return html
     9 
    10 def getImg(html):                 #前面获得的html代码,在这里进行“清洗”,也就是找到代码中想要的(比如图片的地址等等)
    11     reg = r'src="(.+?.jpg)" pic_ext' 
    12     imgre = re.compile(reg)       #上一句 正则表达式匹配 圆括号()代表我们想要(图片的地址),.+? 其中问号是懒惰模式,整个.+?匹配任何字符但尽可能地少,因为懒惰麻  
    13     imglist = re.findall(imgre,html) #上一句 进行预编译,反正就是要比较所以先编译一下,方便省时 这句返回正则表达式匹配的列表
    14     x = 0
    15     for imgurl in imglist:
    16         urllib.urlretrieve(imgurl,'%s.jpg' % x) #存入和这个代码程序相同的目录下
    17         x+=1
    18     return imglist
    19         
    20 
    21 
    22 
    23 html = getHtml("http://tieba.baidu.com/p/2460150866")
    24 
    25 print getImg(html)
    
    

     

     

     

     

     

     

    这几天一直想换电脑,买苹果,无奈钱包空空,怎么能用下班时间转到买苹果顶配的钱,这是一个问题

     

  • 相关阅读:
    Mysql group by语句的优化
    Mysql join语句的优化
    jquery 只读
    【Unity Shaders】Transparency —— 使用渲染队列进行深度排序
    oracle多表查询之内连接,外连接语句总结
    String比较相等的问题探索
    markdown实例
    集合list里存储list,要遍历最底层list的对象元素的遍历方法
    System.out.println(i++); System.out.println(++i);的区别
    windows自动快捷方式
  • 原文地址:https://www.cnblogs.com/gkgy/p/5746172.html
Copyright © 2011-2022 走看看