zoukankan      html  css  js  c++  java
  • 【Python】从0开始写爬虫——小试身手

    先写个demo获取数据,我不会做太多介绍,基本上都会写在注释里。

    header 的数据一般就是在浏览器的调试工具里,有的网站访问需要登陆,就要加cookie。像Chrome的调试工具 快捷键是F12. 去到新浪首页,按F12调出开发者工具,然后刷新。在Network下拉到最上面就能看到一开始的请求信息(我之前是做java web的,略微会一点。)

    import urllib.request
    
    header = {
        'User-Agent':
            'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
    }
    url = "http://www.sina.com"
    
    request = urllib.request.Request(url=url, headers=header)  # url为爬取的链接,headers主要是假装我们不是爬虫,现在我们就假装我们是个Chrome浏览器
    
    response = urllib.request.urlopen(request)  # 请求数据
    
    data = response.read()  # 读取返回的数据
    
    data.decode("UTF-8")  # 设置字符格式为utf-8,可以处理中文

    然后控制台会打印出一段html,就是新浪的首页,数据太多就不发了,发一部分截图。

    然后我们用BeautifulSoup试着解析一下。

    先导入BeautifulSoup, 一般都是加在最上面

    import urllib.request
    from bs4 import BeautifulSoup

    然后在最后面把 print(data) 那句去掉加上

    soup = BeautifulSoup(data, "html.parser")  # 把html转换成BeautifulSoup对象,这样我们就可以用BeautifulSoup的方法来解析html

    print(soup) # 打印

    控制台输出如下

    然后我们可以

    print(soup.title)  # 打印标题
    
    print(soup.find_all("a"))  # 打印所有a标签

    控制台输出, 因为find_all("a")  会找出所有的a标签,所以输出很多

    现在就得去了解BeautifulSoup更多的知识,以便我们能更加快速得获取我们想要得信息。

    忘了贴一下完整的代码

    import urllib.request
    from bs4 import BeautifulSoup
    
    header = {
        'User-Agent':
            'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
    }
    url = "http://www.sina.com"
    
    request = urllib.request.Request(url=url, headers=header)  # url为爬取的链接,headers主要是假装我们不是爬虫,现在我们就假装我们是个Chrome浏览器
    
    response = urllib.request.urlopen(request)  # 请求数据
    
    data = response.read()  # 读取返回的数据
    
    data.decode("UTF-8")  # 设置字符格式为utf-8,可以处理中文
    
    soup = BeautifulSoup(data, "html.parser")  # 把html转换成BeautifulSoup对象,这样我们就可以用BeautifulSoup的方法来解析html
    
    print(soup.title)  # 打印标题
    
    print(soup.find_all("a"))  # 打印所有a标签
    欢迎访问我的个人博客站点: https://yeyeck.com
  • 相关阅读:
    如何判断retina,如何判断设备的比例
    说说移动前端中 viewport (视口)
    随机生成广告
    fullPage 全屏滚动【上下滚动】效果
    判断鼠标滚动方向
    低版本IE浏览器 input元素出现叉叉的情况
    关于IE7 默认有边框的解决方案
    embed 层级太高
    搜狐-新闻页 粗略整理-自我学习
    页面重构布局样式命名规则 —— 参考
  • 原文地址:https://www.cnblogs.com/yeyeck/p/9392618.html
Copyright © 2011-2022 走看看