zoukankan      html  css  js  c++  java
  • 【Python3 爬虫】13_爬取博客园首页所有文章

    首先,我们确定博客园首页地址为:https://www.cnblogs.com/

    我们打开可以看到有各种各样的文章在首页,如下图:

    image

    我们以上图标记的文章为例子吧!打开网页源码,搜索Docker,搜索结果如下图:

    2018-04-22_092757

    从上图后红色标记部分可以看出,我们使用正则表达式即可匹配该网址,我们匹配到该网址之后,将该网址对应的内容下载到到底进行存储。

    实现代码

    import urllib.request
    import re 
    """
    爬取cnblogs首页所有的文章
    """
    url = "http://www.cnblogs.com/"
    headers = ("User_Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0")
    opener = urllib.request.build_opener()
    opener.addheaders = [headers]
    urllib.request.install_opener(opener)
    data = urllib.request.urlopen(url).read().decode("utf-8","ignore")
    #此处的(.*?)是匹配href后所有内容,直到”结束
    rule = '<h3><a class="titlelnk" href="(.*?)"'
    result = re.compile(rule).findall(data)
    for i in range(0,len(result)):
        file = "D:/source/"+str(i)+".html"
        urllib.request.urlretrieve(result[i],filename=file)
        print(""+str(i+1)+"次成功")

    运行结果:

    第1次成功
    第2次成功
    第3次成功
    第4次成功
    第5次成功
    第6次成功
    第7次成功
    第8次成功
    第9次成功
    第10次成功
    第11次成功
    第12次成功
    第13次成功
    第14次成功
    第15次成功
    第16次成功
    第17次成功
    第18次成功
    第19次成功
    第20次成功
    [Finished in 9.3s]

    爬取完成后,我们可以在相应路径下看到爬取后的内容

    image

  • 相关阅读:
    CSS书写规范参考
    CSS实现垂直居中的5种方法
    HTML5新标签
    sublime win10下中文输入框自动跟随解决
    变量更改值
    查看文件
    list copy
    Tomcat JAR包冲突报错
    第一周单元3:Requests库网络爬虫实例-查询ip地址
    .strip()的喵用!
  • 原文地址:https://www.cnblogs.com/OliverQin/p/8905824.html
Copyright © 2011-2022 走看看