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 集合后可以打印一下 第一个元素的类型和值,通过查看类型和值能够帮你更好地进行分析,然后方便写出正则表达式。
  • 相关阅读:
    js错误类型
    js事件流及事件冒泡
    js中BOM学习
    js匿名函数及闭包(javaScript高级程序设计第3版)
    js面向对象、原型及继承(javaScript高级程序设计第3版)
    js中变量、作用域及内存
    函数内部两个特殊的对象---arguments和this
    node+mongoose使用例子
    TypeError: HashUpdate fail
    Mac上安装tomcat服务器
  • 原文地址:https://www.cnblogs.com/enzoluo-blog/p/7810719.html
Copyright © 2011-2022 走看看