美文网首页虫虫
Python第二天(爬虫相关)

Python第二天(爬虫相关)

作者: 胖胖胖虎 | 来源:发表于2019-12-31 21:47 被阅读0次
    单行注释#

    爬虫需要掌握的技术

    1. python基础语法

    2. HTML结构

    3. 爬虫模块的使用

    爬虫相关

    安装requests
    pip install requests
    (手动安装File——Settings——Project Interpreter——+——install)

    1.获取到网页的源代码 requests

    代码示例
    import requests
    # 获取指定域名的源代码
    response = requests.get('https://www.baidu.com')
    # 响应状态码  200 ok 404 not found
    print(response.status_code)
    # 相应的编码方式
    # 设置编码方式
    response.encoding = 'utf-8'
    print(response.status_code)
    print(response.encoding)
    # 获取 string类型的响应
    html_data = response.text
    print(html_data)
    # 将 爬取的文件写成 本地 html
    # 文件路径 读写模式 编码方式
    with open('index.html','w',encoding='utf-8') as f:#爬网页源码
        if response2.status_code == 200:
            f.write(html_data)
    

    图片的爬取

    代码示例
    import requests
    # 图片地址
    #F12——左上角选择元素——src以后的网址 =url
    `
    url = 'http://imgsrc.baidu.com/forum/pic/item/00eaa0ec08fa513d1a4e0fbe326d55fbb3fbd94b.jpg'
    response2 = requests.get(url)
    # 获取byte类型的响应
    img_data = response2.content
    # 文件路径 读写模式 编程方式
    with open('tupian.png','wb') as f:  #爬网页图片
        if response2.status_code == 200:
            f.write(img_data)
    

    2.然后提取我们要的信息 xpath

    使用xpath语法提取本地html文件的内容
    代码示例
    # 安装lxml库
    # pip install lxml
    from lxml import html
    
    读取本地的html文件

    with open('路径','模式','编码') as f:
    f.write('写入的内容')
    f.read() # 读取模式

    with open('index2.html','r',enconding='utf-8')as f:
    #     f.write('写入的内容')
         html_data = f.read() # 读取模式
         print(html_data)
    

    提取h1标题中的内容

    selector = html.fromstring(html_data)
    # 获取标签的内容需要在路径末尾增加/text()
    # /代表根节点
    h1 = selector.xpath('/html/boby/h1/text()')
    print(h1)
    
    语法形式

    //标签1[@属性='属性值']/标签2[@属性='属性值']/.../text()
    //从任意位置开始
    获取a标签的内容

    a = selector.xpath('//div[@id="container"]/a/text()')
    print(a)
    
    获取标签属性语法形式

    //标签1[@属性='属性值']/标签2[@属性='属性值']/.../@属性名

    link = selector.xpath('//div[@id="container"]/a/@href')
    print(link)
    

    相关文章

      网友评论

        本文标题:Python第二天(爬虫相关)

        本文链接:https://www.haomeiwen.com/subject/ktsioctx.html