• 【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
  • 相关阅读:
    modprobe命令
    CentOS实验七:配置RPMForge软件源
    Makefile中的cd用法
    shell 脚本重定向【转】
    自动登陆CentOS
    用UltraISO制作启动光盘
    解决PATH中没有/sbin目录的问题
    Linux系统信息命令大全
    隐藏CentOS桌面图标
    IIS 操作必须使用一个可更新的查询的解决方法
  • 原文地址:https://www.cnblogs.com/yeyeck/p/9392618.html
Copyright © 2020-2023  润新知