风哥教程

培训 . 交流 . 分享
Make progress together!

Python爬虫基础

[复制链接]
内容发布:suger| 发布时间:2021-1-7 16:15:58
本帖最后由 suger 于 2021-1-7 16:17 编辑

1. 一般网页的爬取
抓取大多数情况属于get请求,即直接从对方服务器上获取数据。
首先,Python中自带urllib及urllib2这两个模块,可以满足基本的数据采集功能要求,requests也是非常有用的包,因此简单的采集如下即可。
[Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
import requests
url = http://current.ip.16yun.cn:802
response = requests.get(url)
content = requests.get(url).content
print("response headers:", response.headers)
print("content:", content)
此外,对于带有查询字段的url,get请求一般会将来请求的数据附在url之后,以?分割url和传输数据,多个参数用&连接。
[Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
import requests
data = {'wd':'nike', 'ie':'utf-8'}
url='https://www.baidu.com'
response = requests.get(url=url, params=data)

2.访问限制网站的爬取
大部分网站均限制了IP的访问量,需要使用代理IP进行采集。对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。
[Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    #! -- encoding:utf-8 --
    import requests
    import random

    # 要访问的目标页面
    targetUrl = "http://httpbin.org/ip"

    # 要访问的目标HTTPS页面
    # targetUrl = "https://httpbin.org/ip"

    # 代理服务器(产品官网 www.16yun.cn)
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理隧道验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    # 设置 http和https访问都是用HTTP代理
    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }


    #  设置IP切换头
    tunnel = random.randint(1,10000)
    headers = {"Proxy-Tunnel": str(tunnel)}



    resp = requests.get(targetUrl, proxies=proxies, headers=headers)

    print resp.status_code
    print resp.text

3 限制频率网站的爬取
部分网站会限制频率情况。比如搜索后需要一定间隔才能获取详情页面等。
我们可以用sleep方式来做出以下延迟。

[Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
import time
time.sleep(1)

回复

使用道具 举报

1框架
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

热门文章教程

  • PostgreSQL数据库中文培训手册
  • Oracle OCP认证考试IZ0-053题库共712题数据
  • Oracle19c数据库发布与下载地址
  • MySQL5权威指南(第3版)PDF电子版下载
  • Oracle 12cR2 九大新功能全面曝光_详解云数
  • 风哥Oracle数据库巡检工具V1.0(附2.6网页
快速回复 返回顶部 返回列表