Python教程

Python爬虫随笔

本文主要是介绍Python爬虫随笔,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

封装方法:

class Person:	#创造类
	#__init__() 方法称为类的构造方法,注意是左右各是两个下划线
    def __init__(self,name,age):	
        self.name = name
        self.age = age        
    def detail(self):	#通过self调用被封装的内容
        print (self.name)
        print (self.age)obj1 = Person('santos', 18)obj1.detail()	#Python将obj1传给self参数,即:obj1.detail(obj1),此时内部self=obj1

普通方法:

def detail(name, age):
    print(name)
    print(age)obj1 = detail('santos', 18)

继承:

class Animal:
    def eat(self):
        print("%s 吃 " %self.name)
    def drink(self):
        print("%s 喝" %self.name)
    def shit(self):
        print("%s 拉" %self.name)
    def pee(self):
        print("%s 撒" %self.name)class Cat(Animal):
    def __init__(self, name):
        self.name = name    def cry(self):
        print("喵喵叫")class Dog(Animal):
    def __init__(self, name):
        self.name = name    def cry(self):
        print("汪汪叫")c1 = Cat('小白家的小黑猫')c1.eat()c1.cry()d1 = Dog('胖子家的小瘦狗')d1.eat()d1.cry()

错误处理:

try:
    result = 5/0except Exception as e:
    print(e)

try:
    result = 5/0except:
    pass

第一爬虫:

#!/usr/bin/python#coding: utf-8import requests#引入包requestslink = "http://www.santostang.com"#定义link为目标网页地址#定义请求头的浏览器代理,伪装成浏览器headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Geko/20091201 Firefox/3.5.6'}r = requests.get(link, headers = headers)#请求网页print(r.text)#r.text是获取的网页内容代码

结果:

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><title>Santos Tang</title><meta name="description" content="Python网络爬虫:从入门到实践 官方网站及个人博客" /><meta name="keywords" content="Python网络爬虫, Python爬虫, Python, 爬虫, 数据科学, 数据挖掘, 数据分析, santostang, Santos Tang, 唐松, Song Tang" /><link rel="apple-touch-icon" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/images/icon_32.png"><link rel="apple-touch-icon" sizes="152x152" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/images/icon_152.png"><link rel="apple-touch-icon" sizes="167x167" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/images/icon_167.png"><link rel="apple-touch-icon" sizes="180x180" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/images/icon_180.png"><link rel="icon" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/images/icon_32.png" type="image/x-icon"><link rel="stylesheet" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/css/bootstrap.min.css"><link rel="stylesheet" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/css/fontawesome.min.css"><link rel="stylesheet" href="http://www.santostang.com/wp-content/themes/SongStyle-Two/style.css"><link rel="pingback" href="http://www.santostang.com/xmlrpc.php" /><style type="text/css">a{color:#1e73be}a:hover{color:#2980b9!important}#header{background-color:#1e73be}.widget .widget-title::after{background-color:#1e73be}.uptop{border-left-color:#1e73be}#titleBar .toggle:before{background:#1e73be}</style></head><body><header id="header">
    <div class="avatar"><a href="http://www.santostang.com" title="Santos Tang"><img src="http://www.santostang.com/wp-content/uploads/2019/06/me.jpg" alt="Santos Tang" class="img-circle" width="50%"></a></div>
    <h1 id="name">Santos Tang</h1>
    <div class="sns">
                <a href="https://weibo.com/santostang" target="_blank" rel="nofollow" data-toggle="tooltip" data-placement="top" title="Weibo"><i class="fab fa-weibo"></i></a>        <a href="https://www.linkedin.com/in/santostang" target="_blank" rel="nofollow" data-toggle="tooltip" data-placement="top" title="Linkedin"><i class="fab fa-linkedin"></i></a>        <a href="https://www.zhihu.com/people/santostang" target="_blank" rel="nofollow" data-toggle="tooltip" data-placement="top" title="Zhihu"><i class="fab fa-zhihu"></i></a>        <a href="https://github.com/santostang" target="_blank" rel="nofollow" data-toggle="tooltip" data-placement="top" title="GitHub"><i class="fab fa-github-alt"></i></a>    </div>
    <div class="nav">
        <ul><li><a href="http://www.santostang.com/">首页</a></li><li><a href="http://www.santostang.com/aboutme/">关于我</a></li><li><a href="http://www.santostang.com/python%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab%e4%bb%a3%e7%a0%81/">爬虫书代码</a></li><li><a href="http://www.santostang.com/%e5%8a%a0%e6%88%91%e5%be%ae%e4%bf%a1/">加我微信</a></li><li><a href="https://santostang.github.io/">EnglishSite</a></li></ul>    </div>
        <div class="weixin">
        <img src="http://www.santostang.com/wp-content/uploads/2019/06/qrcode_for_gh_370f70791e19_258.jpg" alt="微信公众号" width="50%">
        <p>微信公众号</p>
    </div>
    </header><div id="main">
    <div class="row box">
        <div class="col-md-8">
                                <h2 class="uptop"><i class="fas fa-arrow-circle-up"></i> <a href="http://www.santostang.com/2018/07/11/%e3%80%8a%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab%ef%bc%9a%e4%bb%8e%e5%85%a5%e9%97%a8%e5%88%b0%e5%ae%9e%e8%b7%b5%e3%80%8b%e4%b8%80%e4%b9%a6%e5%8b%98%e8%af%af/" target="_blank">《网络爬虫:从入门到实践》一书勘误</a></h2>
                                                <article class="article-list-1 clearfix">
                <header class="clearfix">
                    <h1 class="post-title"><a href="http://www.santostang.com/2018/07/15/4-3-%e9%80%9a%e8%bf%87selenium-%e6%a8%a1%e6%8b%9f%e6%b5%8f%e8%a7%88%e5%99%a8%e6%8a%93%e5%8f%96/">第四章 &#8211; 4.3 通过selenium 模拟浏览器抓取</a></h1>
                    <div class="post-meta">
                        <span class="meta-span"><i class="far fa-calendar-alt"></i> 07月15日</span>
                        <span class="meta-span"><i class="far fa-folder"></i> <a href="http://www.santostang.com/category/python-%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" rel="category tag">Python 网络爬虫</a></span>
                        <span class="meta-span"><i class="fas fa-comments"></i> <a href="http://www.santostang.com/2018/07/15/4-3-%e9%80%9a%e8%bf%87selenium-%e6%a8%a1%e6%8b%9f%e6%b5%8f%e8%a7%88%e5%99%a8%e6%8a%93%e5%8f%96/#respond">没有评论</a></span>
                        <span class="meta-span hidden-xs"><i class="fas fa-tags"></i> </span>
                    </div>
                </header>
                <div class="post-content clearfix">
                    <p>4.3 通过selenium 模拟浏览器抓取

在上述的例子中,使用Chrome“检查”功能找到源地址还十分容易。但是有一些网站非常复杂,例如前面的天猫产品评论,使用“检查”功能很难找到调用的网页地址。除此之外,有一些数据...</p>
                </div>
            </article>
                                                <article class="article-list-1 clearfix">
                <header class="clearfix">
                    <h1 class="post-title"><a href="http://www.santostang.com/2018/07/14/4-2-%e8%a7%a3%e6%9e%90%e7%9c%9f%e5%ae%9e%e5%9c%b0%e5%9d%80%e6%8a%93%e5%8f%96/">第四章 &#8211; 4.2 解析真实地址抓取</a></h1>
                    <div class="post-meta">
                        <span class="meta-span"><i class="far fa-calendar-alt"></i> 07月14日</span>
                        <span class="meta-span"><i class="far fa-folder"></i> <a href="http://www.santostang.com/category/python-%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" rel="category tag">Python 网络爬虫</a></span>
                        <span class="meta-span"><i class="fas fa-comments"></i> <a href="http://www.santostang.com/2018/07/14/4-2-%e8%a7%a3%e6%9e%90%e7%9c%9f%e5%ae%9e%e5%9c%b0%e5%9d%80%e6%8a%93%e5%8f%96/#respond">没有评论</a></span>
                        <span class="meta-span hidden-xs"><i class="fas fa-tags"></i> <a href="http://www.santostang.com/tag/ajax/" rel="tag">ajax</a>,<a href="http://www.santostang.com/tag/python/" rel="tag">python</a>,<a href="http://www.santostang.com/tag/%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" rel="tag">网络爬虫</a>,<a href="http://www.santostang.com/tag/%e7%bd%91%e9%a1%b5%e7%88%ac%e8%99%ab/" rel="tag">网页爬虫</a>,<a href="http://www.santostang.com/tag/%e8%a7%a3%e6%9e%90%e5%9c%b0%e5%9d%80/" rel="tag">解析地址</a></span>
                    </div>
                </header>
                <div class="post-content clearfix">
                    <p>由于网易云跟帖停止服务,现在已经在此处中更新了新写的第四章。请参照文章:4.2 解析真实地址抓取
虽然数据并没有出现在网页源代码中,我们也可以找到数据的真实地址,请求这个真实地址也可以获得想要的数据。...</p>
                </div>
            </article>
                                                <article class="article-list-1 clearfix">
                <header class="clearfix">
                    <h1 class="post-title"><a href="http://www.santostang.com/2018/07/14/%e7%ac%ac%e5%9b%9b%e7%ab%a0%ef%bc%9a%e5%8a%a8%e6%80%81%e7%bd%91%e9%a1%b5%e6%8a%93%e5%8f%96-%e8%a7%a3%e6%9e%90%e7%9c%9f%e5%ae%9e%e5%9c%b0%e5%9d%80-selenium/">第四章- 动态网页抓取 (解析真实地址 + selenium)</a></h1>
                    <div class="post-meta">
                        <span class="meta-span"><i class="far fa-calendar-alt"></i> 07月14日</span>
                        <span class="meta-span"><i class="far fa-folder"></i> <a href="http://www.santostang.com/category/python-%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" rel="category tag">Python 网络爬虫</a></span>
                        <span class="meta-span"><i class="fas fa-comments"></i> <a href="http://www.santostang.com/2018/07/14/%e7%ac%ac%e5%9b%9b%e7%ab%a0%ef%bc%9a%e5%8a%a8%e6%80%81%e7%bd%91%e9%a1%b5%e6%8a%93%e5%8f%96-%e8%a7%a3%e6%9e%90%e7%9c%9f%e5%ae%9e%e5%9c%b0%e5%9d%80-selenium/#respond">没有评论</a></span>
                        <span class="meta-span hidden-xs"><i class="fas fa-tags"></i> <a href="http://www.santostang.com/tag/ajax/" rel="tag">ajax</a>,<a href="http://www.santostang.com/tag/javascript/" rel="tag">javascript</a>,<a href="http://www.santostang.com/tag/python/" rel="tag">python</a>,<a href="http://www.santostang.com/tag/selenium/" rel="tag">selenium</a>,<a href="http://www.santostang.com/tag/%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" rel="tag">网络爬虫</a></span>
                    </div>
                </header>
                <div class="post-content clearfix">
                    <p>由于网易云跟帖停止服务,现在已经在此处中更新了新写的第四章。请参照文章:
前面爬取的网页均为静态网页,这样的网页在浏览器中展示的内容都在HTML源代码中。但是,由于主流网站都使用JavaScript展现网页内容,...</p>
                </div>
            </article>
                                                <article class="article-list-1 clearfix">
                <header class="clearfix">
                    <h1 class="post-title"><a href="http://www.santostang.com/2018/07/04/hello-world/">Hello world!</a></h1>
                    <div class="post-meta">
                        <span class="meta-span"><i class="far fa-calendar-alt"></i> 07月04日</span>
                        <span class="meta-span"><i class="far fa-folder"></i> <a href="http://www.santostang.com/category/python-%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" rel="category tag">Python 网络爬虫</a></span>
                        <span class="meta-span"><i class="fas fa-comments"></i> <a href="http://www.santostang.com/2018/07/04/hello-world/#comments">1条评论</a></span>
                        <span class="meta-span hidden-xs"><i class="fas fa-tags"></i> </span>
                    </div>
                </header>
                <div class="post-content clearfix">
                    <p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!各位读者,由于网易云跟帖在本书出版后已经停止服务,书中的第四章已经无法使用。所以我将本书的评论系统换成了来必力...</p>
                </div>
            </article>
                                    <nav style="float:right">
                            </nav>
        </div>
        <div class="col-md-4 hidden-xs hidden-sm">
            <aside class="widget clearfix">
    <form id="searchform" action="http://www.santostang.com">
        <div class="input-group">
            <input type="search" class="form-control" placeholder="搜索…" value="" name="s">
            <span class="input-group-btn"><button class="btn btn-default" type="submit"><i class="fas fa-search"></i></button></span>
        </div>
    </form></aside><aside class="widget clearfix">
    <h4 class="widget-title">文章分类</h4>
    <ul class="widget-cat">
        	<li class="cat-item cat-item-2"><a href="http://www.santostang.com/category/python-%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" >Python 网络爬虫</a> (5)</li>
    </ul></aside><aside class="widget clearfix">
    <h4 class="widget-title">热门文章</h4>
    <ul class="widget-hot">
            </ul></aside><aside class="widget clearfix">
    <h4 class="widget-title">随机推荐</h4>
    <ul class="widget-hot">
            <li><a href="http://www.santostang.com/2018/07/04/hello-world/" title="Hello world!">Hello world!</a></li>
            <li><a href="http://www.santostang.com/2018/07/14/%e7%ac%ac%e5%9b%9b%e7%ab%a0%ef%bc%9a%e5%8a%a8%e6%80%81%e7%bd%91%e9%a1%b5%e6%8a%93%e5%8f%96-%e8%a7%a3%e6%9e%90%e7%9c%9f%e5%ae%9e%e5%9c%b0%e5%9d%80-selenium/" title="第四章- 动态网页抓取 (解析真实地址 + selenium)">第四章- 动态网页抓取 (解析真实地址 + selenium)</a></li>
            <li><a href="http://www.santostang.com/2018/07/11/%e3%80%8a%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab%ef%bc%9a%e4%bb%8e%e5%85%a5%e9%97%a8%e5%88%b0%e5%ae%9e%e8%b7%b5%e3%80%8b%e4%b8%80%e4%b9%a6%e5%8b%98%e8%af%af/" title="《网络爬虫:从入门到实践》一书勘误">《网络爬虫:从入门到实践》一书勘误</a></li>
            <li><a href="http://www.santostang.com/2018/07/14/4-2-%e8%a7%a3%e6%9e%90%e7%9c%9f%e5%ae%9e%e5%9c%b0%e5%9d%80%e6%8a%93%e5%8f%96/" title="第四章 – 4.2 解析真实地址抓取">第四章 &#8211; 4.2 解析真实地址抓取</a></li>
            <li><a href="http://www.santostang.com/2018/07/15/4-3-%e9%80%9a%e8%bf%87selenium-%e6%a8%a1%e6%8b%9f%e6%b5%8f%e8%a7%88%e5%99%a8%e6%8a%93%e5%8f%96/" title="第四章 – 4.3 通过selenium 模拟浏览器抓取">第四章 &#8211; 4.3 通过selenium 模拟浏览器抓取</a></li>
        </ul></aside><aside class="widget clearfix">
    <h4 class="widget-title">标签云</h4>
    <div class="widget-tags">
        <a href="http://www.santostang.com/tag/ajax/" class="tag-cloud-link tag-link-3 tag-link-position-1" style="color:#2714f1;font-size: 22pt;" aria-label="ajax (2个项目);">ajax</a><a href="http://www.santostang.com/tag/javascript/" class="tag-cloud-link tag-link-4 tag-link-position-2" style="color:#520b7d;font-size: 8pt;" aria-label="javascript (1个项目);">javascript</a><a href="http://www.santostang.com/tag/python/" class="tag-cloud-link tag-link-5 tag-link-position-3" style="color:#555c1a;font-size: 22pt;" aria-label="python (2个项目);">python</a><a href="http://www.santostang.com/tag/selenium/" class="tag-cloud-link tag-link-6 tag-link-position-4" style="color:#48af9c;font-size: 8pt;" aria-label="selenium (1个项目);">selenium</a><a href="http://www.santostang.com/tag/%e7%bd%91%e7%bb%9c%e7%88%ac%e8%99%ab/" class="tag-cloud-link tag-link-8 tag-link-position-5" style="color:#84e3cd;font-size: 22pt;" aria-label="网络爬虫 (2个项目);">网络爬虫</a><a href="http://www.santostang.com/tag/%e7%bd%91%e9%a1%b5%e7%88%ac%e8%99%ab/" class="tag-cloud-link tag-link-9 tag-link-position-6" style="color:#72b1a4;font-size: 8pt;" aria-label="网页爬虫 (1个项目);">网页爬虫</a><a href="http://www.santostang.com/tag/%e8%a7%a3%e6%9e%90%e5%9c%b0%e5%9d%80/" class="tag-cloud-link tag-link-10 tag-link-position-7" style="color:#1df648;font-size: 8pt;" aria-label="解析地址 (1个项目);">解析地址</a>    </div></aside><aside class="widget clearfix">
    <h4 class="widget-title">友情链接</h4>
    <ul class="widget-links">
            </ul></aside>
        </div>
    </div></div><div class="footer_search visible-xs visible-sm">
    <form id="searchform" action="http://www.santostang.com">
        <div class="input-group">
            <input type="search" class="form-control" placeholder="搜索…" value="" name="s">
            <span class="input-group-btn"><button class="btn btn-default" type="submit"><i class="fas fa-search"></i></button></span>
        </div>
    </form></div><footer id="footer">
    <div class="copyright">
        <p><i class="far fa-copyright"></i> 2019 <b>唐松-数据科学 版权所有</b></p>
        <p>Powered by <b>WordPress</b>. Theme by <a href="https://tangjie.me/jiestyle-two" data-toggle="tooltip" data-placement="top" title="WordPress 主题模板" target="_blank"><b>JieStyle Two</b></a> | <a href="http://beian.miit.gov.cn" data-toggle="tooltip" data-placement="top" target="_blank"><b>粤ICP备19068356号</b></a> </p> </p>
    </div>
    <div style="display:none;">代码在页面底部,统计标识不会显示,但不影响统计效果</div></footer><script type="text/javascript" src="http://www.santostang.com/wp-content/themes/SongStyle-Two/js/jquery.min.js"></script><script type="text/javascript" src="http://www.santostang.com/wp-content/themes/SongStyle-Two/js/bootstrap.min.js"></script><script type="text/javascript" src="http://www.santostang.com/wp-content/themes/SongStyle-Two/js/skel.min.js"></script><script type="text/javascript" src="http://www.santostang.com/wp-content/themes/SongStyle-Two/js/util.min.js"></script><script type="text/javascript" src="http://www.santostang.com/wp-content/themes/SongStyle-Two/js/nav.js"></script><script type='text/javascript' src='http://www.santostang.com/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script><script type='text/javascript' src='http://www.santostang.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script><script type='text/javascript' src='http://www.santostang.com/wp-content/plugins/captcha-bank/assets/global/plugins/custom/js/front-end-script.js?ver=4.8.13'></script><script>$(function() {
    $('[data-toggle="tooltip"]').tooltip()});</script><script>(function(){
    var bp = document.createElement('script');
    var curProtocol = window.location.protocol.split(':')[0];
    if (curProtocol === 'https') {
        bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
    }
    else {
        bp.src = 'http://push.zhanzhang.baidu.com/push.js';
    }
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(bp, s);})();</script><script>var _hmt = _hmt || [];(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?752e310cec7906ba7afeb24cd7114c48";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);})();</script></body></html>***Repl Closed***

提取需要的数据:

#!/usr/bin/python#coding: utf-8import requests#引入包requestsfrom bs4 import BeautifulSoup #从bs4这个库中导入BeautifulSouplink = "http://www.santostang.com/"#定义link为目标网页地址#定义请求头的浏览器代理,伪装成浏览器headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Geko/20091201 Firefox/3.5.6'}r = requests.get(link, headers = headers)#请求网页soup = BeautifulSoup(r.text, "html.parser")	#使用BeautifulSoup解析#找到第一篇文章标题,定位到class是"post-title"的h1元素,提取a,提取a里面的字符串,strip()去除左右空格title = soup.find("h1", class_="post-title").a.text.strip()print(title)#r.text是获取的网页内容代码

存储数据:

#!/usr/bin/python#coding: utf-8import requests#引入包requestsfrom bs4 import BeautifulSoup #从bs4这个库中导入BeautifulSouplink = "http://www.santostang.com/"#定义link为目标网页地址#定义请求头的浏览器代理,伪装成浏览器headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Geko/20091201 Firefox/3.5.6'}r = requests.get(link, headers = headers)#请求网页soup = BeautifulSoup(r.text, "html.parser")	#使用BeautifulSoup解析#找到第一篇文章标题,定位到class是"post-title"的h1元素,提取a,提取a里面的字符串,strip()去除左右空格title = soup.find("h1", class_="post-title").a.text.strip()print(title)#r.text是获取的网页内容代码#打开一个空白的txt,然后使用f.write写入刚刚的字符串titlewith open('title_test.txt', "a+") as f:
	f.write(title)

获取响应内容::

import requests
r = requests.get('http://www.santostang.com/')print("文本编码:", r.encoding)	#r.encoding是服务器内容使用的文本编码print("响应状态码:", r.status_code)	#r.status.code是使用检测响应的状态码,如果返回200,就表示请求成功;如果返回的是4xx,就表示客户端错误;返回5xx则表示服务器错误响应。print("字符串方式的响应体:", r.text)	#r.text是服务器响应的内容,会自动根据响应头部的字符编码进行解码#r.content是字节方式的响应体,会自动解码gzip和deflate编码的响应数据#r.json()是Requests中内置的JSON编码器

定制Requests:

传递URL参数:

import requests

key_dict = {'key1': 'value1', 'key2': 'value2'}r = requests.get('http://httpbin.org/get', params=key_dict)print("URL已经正确编码:", r.url)print("字符串方式的响应体:\n", r.text)

URL已经正确编码: http://httpbin.org/get?key1=value1&key2=value2
字符串方式的响应体:
 {
  "args": {
    "key1": "value1", 
    "key2": "value2"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.23.0", 
    "X-Amzn-Trace-Id": "Root=1-5ed377ad-87660203c82a16d9747c349e"
  }, 
  "origin": "120.34.247.155", 
  "url": "http://httpbin.org/get?key1=value1&key2=value2"}***Repl Closed***

超时:

import requests
link = "http://www.santostang.com/"r = requests.get(link, timeout=0.001)	#可以设置时间

项目实践:

import requestsdef get_movies():
	headers = {
	'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
	'Host': 'movie.douban.com'
	}

	for i in range(0,10):
		link = 'https://movie.douban.com/top250?start=' + str(i*25)
		r = requests.get(link, headers=headers, timeout = 10)
		print(str(i+1),"页面响应状态码:", r.status_code)
		print(r.text)get_movies()

得到全是网页HTML代码

修改后:

import requestsfrom bs4 import BeautifulSoupdef get_movies():
	headers = {
	'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
	'Host': 'movie.douban.com'
	}

	movie_list = []

	for i in range(0,10):
		link = 'https://movie.douban.com/top250?start=' + str(i*25)
		r = requests.get(link, headers=headers, timeout = 10)
		print(str(i+1),"页面响应状态码:", r.status_code)
		
		soup = BeautifulSoup(r.text, "lxml")
		div_list= soup.find_all('div', class_='hd')
		for each in div_list:
			movie = each.a.span.text.strip()
			movie_list.append(movie)
	return movie_list

movies = get_movies()print(movies)

1 页面响应状态码: 2002 页面响应状态码: 2003 页面响应状态码: 2004 页面响应状态码: 2005 页面响应状态码: 2006 页面响应状态码: 2007 页面响应状态码: 2008 页面响应状态码: 2009 页面响应状态码: 20010 页面响应状态码: 200['肖申克的救赎', '霸王别姬', '阿甘正传', '这个杀手不太冷', '美丽人生', '泰坦尼克号', '千与千寻', '辛德勒的名单', '盗梦空间', '忠犬八公的故事', '海上钢琴师', '楚门的世界', '三傻大闹宝莱坞', '机器人总动 
员', '放牛班的春天', '星际穿越', '大话西游之大圣娶亲', '熔炉', '疯狂动物城', '无间道', '龙猫', '教父', '当幸福来敲门', '怦然心动', '触不可及', '蝙蝠侠:黑暗骑士', '控方证人', '活着', '乱世佳人', '寻梦 
环游记', '末代皇帝', '摔跤吧!爸爸', '指环王3:王者无敌', '何以为家', '少年派的奇幻漂流', '飞屋环游记', '十二怒汉', '鬼子来了', '天空之城', '哈尔的移动城堡', '素媛', '大话西游之月光宝盒', '天堂电影院', '罗马假日', '闻香识女人', '辩护人', '哈利·波特与魔法石', '我不是药神', '搏击俱乐部', '死亡诗社', '教父2', '指环王2:双塔奇兵', '狮子王', '大闹天宫', '窃听风暴', '指环王1:魔戒再现', '猫鼠游戏', '两杆 
大烟枪', '美丽心灵', '饮食男女', '钢琴家', '***帝国', '飞越疯人院', 'V字仇杀队', '本杰明·巴顿奇事', '看不见的客人', '让子弹飞', '西西里的美丽传说', '小鞋子', '拯救大兵瑞恩', '海豚湾', '情书', '穿条纹 
睡衣的男孩', '绿皮书', '音乐之声', '美国往事', '海蒂和爷爷', '致命魔术', '低俗小说', '七宗罪', '沉默的羔羊', '蝴蝶效应', '禁闭岛', '春光乍泄', '心灵捕手', '布达佩斯大饭店', '被嫌弃的松子的一生', '阿凡 
达', '摩登时代', '剪刀手爱德华', '勇敢的心', '天使爱美丽', '喜剧之王', '致命ID', '加勒比海盗', '断背山', '杀人回忆', '狩猎', '哈利·波特与死亡圣器(下)', '请以你的名字呼唤我', '幽灵公主', '阳光灿烂的日子', '小森林 夏秋篇', '入殓师', '重庆森林', '第六感', '7号房的礼物', '消失的爱人', '红辣椒', '小森林 冬春篇', '爱在黎明破晓前', '一一', '侧耳倾听', '唐伯虎点秋香', '玛丽和马克思', '超脱', '倩女幽魂', '蝙
蝠侠:黑暗骑士崛起', '告白', '大鱼', '阳光姐妹淘', '甜蜜蜜', '射雕英雄传之东成西就', '萤火之森', '驯龙高手', '无人知晓', '超能陆战队', '幸福终点站', '借东西的小人阿莉埃蒂', '菊次郎的夏天', '爱在日落黄 
昏时', '恐怖直播', '完美的世界', '神偷奶爸', '怪兽电力公司', '玩具总动员3', '功夫', '血战钢锯岭', '人生果实', '风之谷', '傲慢与偏见', '时空恋旅人', '上帝之城', '教父3', '天书奇谭', '电锯惊魂', '喜宴', '英雄本色', '被解救的姜戈', '谍影重重3', '七武士', '岁月神偷', '哪吒闹海', '我是山姆', '头号玩家', '釜山行', '疯狂原始人', '纵横四海', '三块广告牌', '心迷宫', '达拉斯买家俱乐部', '萤火虫之墓', '真爱至 
上', '荒蛮故事', '哈利·波特与阿兹卡班的囚徒', '贫民窟的百万富翁', '东邪西毒', '你的名字。', '记忆碎片', '爆裂鼓手', '卢旺达饭店', '花样年华', '黑天鹅', '忠犬八公物语', '***帝国3:矩阵革命', '模仿游戏', '一个叫欧维的男人决定去死', '头脑特工队', '哈利·波特与密室', '你看起来好像很好吃', '雨人', '未麻的部屋', '无敌破坏王', '新世界', '恋恋笔记本', '冰川时代', '海街日记', '二十二', '海边的曼彻斯特', '惊 
魂记', '房间', '虎口脱险', '恐怖游轮', '奇迹男孩', '魔女宅急便', '人工智能', '雨中曲', '疯狂的石头', '小偷家族', '爱在午夜降临前', '罗生门', '绿里奇迹', '终结者2:审判日', '海洋', '初恋这件小事', '魂断
蓝桥', '燃情岁月', '可可西里', '2001太空漫游', '穿越时空的少女', '牯岭街少年杀人事件', '城市之光', '完美陌生人', '无耻混蛋', '新龙门客栈', '源代码', '阿飞正传', '青蛇', '色,戒', '香水', '谍影重重2', '地球上的星星', '遗愿清单', '血钻', '谍影重重', '战争之王', '大佛普拉斯', '猜火车', '疯狂的麦克斯4:狂暴之路', '彗星来的那一夜', '步履不停', '朗读者', '浪潮', '小萝莉的猴神大叔', '再次出发之纽约遇见你', '驴得水', '聚焦', '九品芝麻官', '东京物语', '哈利·波特与火焰杯', '追随', '一次别离', '千钧一发', '我爱你', '黑鹰坠落', '网络谜踪', '四个春天', '波西米亚狂想曲', '发条橙', 'E.T. 外星人']

Selenium高级操作:

from selenium import webdriver

fp = webdriver.FirefoxProfile()fp.set_preference("permissions.default.stylesheet",2)driver = webdriver.Firefox(firefox_profile=fp, executable_path=r'C:\Users\邹成智\Desktop\爬虫\geckodriver.exe')driver.get("http://www.santostang.com/2018/07/04/hello-world/")

限制图片加载:

from selenium import webdriver

fp = webdriver.FirefoxProfile()fp.set_preference("permissions.default.image",2)	#限制图片的加载driver = webdriver.Firefox(firefox_profile=fp, executable_path=r'C:\Users\邹成智\Desktop\爬虫\geckodriver.exe')driver.get("http://www.santostang.com/2018/07/04/hello-world/")

限制javascript加载:

from selenium import webdriver

fp = webdriver.FirefoxProfile()fp.set_preference("javascript.enable",False)	#限制javascript加载driver = webdriver.Firefox(firefox_profile=fp, executable_path=r'C:\Users\邹成智\Desktop\爬虫\geckodriver.exe')driver.get("http://www.santostang.com/2018/07/04/hello-world/")

               

这篇关于Python爬虫随笔的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!