zoukankan      html  css  js  c++  java
  • python 中爬虫的运用

    使用类库:

    from bs4 import BeautifulSoup
    import requests
    import re

    个人比较喜欢BeautifulSoup

    url  = "http://www.jianshu.com/c/2ba824b6ed53?utm_medium=index-collections&utm_source=desktop"
    res = requests.get(url)
    res.cencoding = 'utf-8'
    soup = BeautifulSoup(res.text,"lxml")

    将soup 获取到
    使用正则表达式进行解析

    titles_html = soup.select("#list-container > ul > li > div > a")  使用soup的选择去惊醒选择 这个可以通过浏览器的 copy selector 或者牛逼的话自己也可以写。就是div下面一层一层拨开,这里如果有id的话直接以id开头就可以
    content_html = soup.select("#list-container > ul > li > div > p")
    re_title = re.compile(r'target="_blank">(.*?)</a>')
    re_content = re.compile(r'<p class="abstract">[sD]* (.*?) ')
    正则表达式的使用:
    通过re.compile, r'' 这里面写正则 一般是用首尾讲去要的信息括起来,需要的信息使用() 惊醒匹配,括号里面写自己需要取得信息

    这里最常用的的 . 这个 . 能够取到除了换行符之外的所有字符, * 代表任意个字符。
    ** 如果需要取包括换行符的字符 可以用 [sS]

    另外人工分析的时候需要非常小心这个字符里面的东西。 分析清楚才能写出简单并且正确的正则表达式. 尤其是换行符要非常注意。

    * 有几点去要注意的:
      一、通过soup.select 得到的是list 而且list 里面的元素的类型 是 bs4.element.Tag 类型 ,这个类型是不能直接用正则表达式进行解析的 要使用str 将这个元素转化为String类型,这样就能够惊醒解析。
      二、建议获取soup 集合后可以打印一下 第一个元素的类型和值,通过查看类型和值能够帮你更好地进行分析,然后方便写出正则表达式。
  • 相关阅读:
    06 is和==的区别 encode()编码 decode()解码
    05 dic的增删改查 字典的嵌套 考试题dic.get()的相关使用
    03 编码 int ,bool,str的常用操作 主要讲str
    01 基本数据类型 变量 if语句
    04 列表的增删改查 常用方法 元祖 range
    02 while循环 格式化输出 运算符
    多校2 Harmonious Army hdu6598 网络流
    P3159 [CQOI2012]交换棋子 网络流
    P2172 [国家集训队]部落战争 最大流
    P2402 奶牛隐藏 网络流
  • 原文地址:https://www.cnblogs.com/enzoluo-blog/p/7810719.html
Copyright © 2011-2022 走看看