python 中爬虫的运用

Posted 丿格物致知丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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">[\s\D]* (.*?)\n‘)
正则表达式的使用:
通过re.compile, r‘‘ 这里面写正则 一般是用首尾讲去要的信息括起来,需要的信息使用() 惊醒匹配,括号里面写自己需要取得信息

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

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

* 有几点去要注意的:
  一、通过soup.select 得到的是list 而且list 里面的元素的类型 是 bs4.element.Tag 类型 ,这个类型是不能直接用正则表达式进行解析的 要使用str 将这个元素转化为String类型,这样就能够惊醒解析。
  二、建议获取soup 集合后可以打印一下 第一个元素的类型和值,通过查看类型和值能够帮你更好地进行分析,然后方便写出正则表达式。

 





























以上是关于python 中爬虫的运用的主要内容,如果未能解决你的问题,请参考以下文章

用爬虫抓取网页得到的源代码和浏览器中看到的不一样运用了啥技术?

Python:运用pydub模块转换音频格式对音频进行剪辑

Python:运用pydub模块转换音频格式对音频进行剪辑

python 中爬虫的运用

python爬虫--运用cookie模拟登录知乎

Python GUI编程:音乐播放器(多线程爬虫进度条文件)