博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的第一个爬虫实验
阅读量:5011 次
发布时间:2019-06-12

本文共 3038 字,大约阅读时间需要 10 分钟。

一、python 连接测试URL

  1. 运行环境: python3.7  win7x64
  2. 使用工具: VS Code
  3. python 第三方库: requests (自行安装 >>> cmd --->pip install requests, 具体不做介绍)
  4. requests 库简介
  5. ① 导入库
  6. from requests import get

    ② 设定url, 并使用get方法请求页面得到响应

    url = "http://www.baidu.com"r = get(url, timeout=3)print("获得响应的状态码:", r.status_code)print("响应内容的编码方式:", r.encoding)

    运行结果:

    获得响应的状态码: 200

    响应内容的编码方式: ISO-8859-1

     ③ 获取网页内容

    url_text = r.textprint("网页内容:", r.text)print("网页内容长度:", len(url_text))

    运行结果:

    网页内容: <!DOCTYPE html><!--STATUS OK--><html> <head> ... &nbsp;京ICPè¯030173å·&nbsp; ... </body> </html>

    网页内容长度: 2381

    ④ 重新获取网页内容

    r.encoding = "utf-8"url_text = r.textprint("网页内容:", r.text)print("网页内容长度:", len(url_text))

    运行结果:

    网页内容: <!DOCTYPE html> <!--STATUS OK--><html> <head> ... 意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>

    网页内容长度: 2287

    二、python 疯狂连接URL

    1.  使用上述的连接测试 "经验", 找个网站进行疯狂连接
    2. 在此,选取搜狗网站
    3. 上代码
    url = "http://www.sogou.com" # 搜狗for i in range(200):    print("Test %d:" % (i+1), end=" ")    response = get(url, timeout=5)    # 判断连接状态    if response.status_code == 200:        print("Conncect successful!")    else:        print("Conncect UNsuccessful!")

    运行结果:

    Test 1: Conncect successful!

    Test 2: Conncect successful!
    Test 3: Conncect successful!
    Test 4: Conncect successful!
    Test 5: Conncect successful!

                        ................

    Test 199: Conncect successful!

    Test 200: Conncect successful!

    三、获取网页的各个属性标签内容

    (我也不知道这个标题什么意思, 感觉很牛但看不懂, 才怪呢!你肯定看得懂!)

    这里,选取一个很厉害的网站做演示

    URL = 

     

    步骤说明:

    1. 找个url, 上面有了, 其实随便一个都是OK的

    2. 抓取网页内容,这个上面有详解,不难

    3. 本次使用 BeautifulSoup 第三方库,需要自行下载【】

    4. 开工

      前面提供了 URL,现在抓取网页内容

    1 # -*- encoding:utf-8 -*- 2 from requests import get 3 def getText(url): 4     try: 5         r = get(url, timeout=5) 6         r.raise_for_status() 7         r.encoding = 'utf-8' 8         return r.text 9     except Exception as e:10         print("Error:", e)11         return ''

     

    from bs4 import BeautifulSoup
    1 url = "https://www.runoob.com/"2 html = getText(url)3 soup = BeautifulSoup(html)

    ① 获取 head 标签

    print("head:", soup.head)print("head:", len(soup.head))

        由于结果比较多,就只输出第二个结果

    head: 33

    ② 获取 body 标签

    print("body:", soup.body)print("body:", len(soup.body))

      由于结果比较多,就只输出第二个结果

    body: 39

    ③ 获取 title 标签

    print("title:", soup.title)

    title: <title>菜鸟教程 - 学的不仅是技术,更是梦想!</title>

    ④ 获取 title 的内容

    print("title_string:", soup.title.string)

    title_string: 菜鸟教程 - 学的不仅是技术,更是梦想!

    ⑤ 查找特定 id 的内容

    print("special_id:", soup.find(id='cd-login'))

    special_id: <div id="cd-login"> <!-- 登录表单 -->

    <div class="cd-form">
    <p class="fieldset"> ......

    ⑥ 查找所有的 a 标签

    a: [<a href="/">菜鸟教程 -- 学的不仅是技术,更是梦想!</a>, <a class="current" data-id="index" href="//www.runoob.com/" title="菜鸟教程">首页</a>, ......

    ⑦ 摘取所有的中文字符

    1 import re2 def getChinese(text):3     text_unicode = text.strip() # 将字符串进行处理, 包括转化为unicode4     string = re.compile('[^\u4e00-\u9fff]')5         # 中文编码范围是 \u4e00-\u9ffff6         # 中文、数字编码范围是 \u4e00-\u9fa507     chinese = "".join(string.split(text_unicode))8     return chinese
    print("Chinese:", getChinese(html))

转载于:https://www.cnblogs.com/0609hlz/p/10929758.html

你可能感兴趣的文章
thymeleaf+bootstrap,onclick传参实现模态框中遇到的错误
查看>>
python字符串实战
查看>>
wyh的物品(二分)
查看>>
UNIX网络编程
查看>>
修改页面select <s:if------/>判断
查看>>
3. fooView rxjava + rxandroid + retrofit 安卓开发框架搭配 az kj
查看>>
项目启动及绩效评估
查看>>
SSM-Spring-08:Spring的静态代理初窥案例
查看>>
基于 Jenkins 快速搭建持续集成环境
查看>>
华为云.NET Core支持情况调查
查看>>
集合已修改;可能无法执行枚举操作
查看>>
javascript变量及命名规范
查看>>
如何让pl/sql developer记住密码,实现快速登录
查看>>
如何利用微软本身的库做个数据库客户端的配置
查看>>
【当前工作感受系列】
查看>>
温故而知新 Volley源码解读与思考
查看>>
Mybatis和JDBC区别
查看>>
pcre库之ovector[OVECCOUNT]数组的理解
查看>>
FileRegistrationHelper 为文件类型注册默认打开方式
查看>>
城市列表
查看>>