关键词:python Linux HTML 正则表达式

这是一篇轻量化帖子,主要讲解爬虫原理与大致过程,可作为兴趣入门也可作为科普向的文章来看,如有不对的地方欢迎大家指出来。

爬虫就是利用自动化的工具获取网页信息并筛选出其中有用的内容的脚本。

  • 第一步,根据我们要根据爬取的网站编写对应的自动化,本篇分享以爬取微博热搜榜单为例。

一次简单的爬虫体验_正则表达式

  • 这次使用python中的requests、tinydb、openpyxl、pandas、re、datetime这些库,还可以用selenium、winauto、Lackey、beautifulsoup4等库,这些库具体作用就不一一列举其具体作用,有兴趣可以下来查看具体用法。
  • 下面就是整个演示的重头戏了,写脚本,因为今天演示的这个网站并没有做放爬措施,爬起来还是相当轻松的
  • 首先我们观察这个网站,按F12可以查看元素

一次简单的爬虫体验_html_02

  • 使用这个示例代码可以将整个网站的html文件下载下来,原理很简单,只是使用python里的requests库模拟我们平时使用浏览器的场景,将header、Cookie(有的甚至不需要)传入url,就会返回html内容
import requests
url = 'https://example.com'
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0'
}
cookie = {
'Cookie': 'Your Cookie'
}
html = requests.get(url,headers=header,cookies=cookie)
con = html.content.decode()
print(con)
  • 打开文件我们可以发现其中有我们需要的信息

一次简单的爬虫体验_python_03

  • 并且是有规律的出现,其格式为:
<a href="/weibo?q=%23%E5%9C%BA%E9%A6%86%E5%9B%9E%E5%BA%94%E6%9E%97%E4%BF%8A%E6%9D%B0%E8%8B%8F%E5%B7%9E%E6%BC%94%E5%94%B1%E4%BC%9A%E9%9F%B3%E5%93%8D%E6%95%85%E9%9A%9C%23&t=31&band_rank=48&Refer=top" 
   target="_blank">场馆回应林俊杰苏州演唱会音响故障</a>

一次简单的爬虫体验_爬虫_04

  • 下面就是轮到我们re库,进阶一点的有BeautifulSoup库。
importre
'''
.......
'''
td_list = re.findall(r'<a href="(.*?)".*?>(.*?)</a>',con,re.S)
  • 通过这一行匹配所有的符合的内容,成功获取到想要的内容。

一次简单的爬虫体验_正则表达式_05

  • 如果你想永久保存、可视化数据,你可以使用Pandas库来进行处理。用datetime库来记录当前时间。

一次简单的爬虫体验_爬虫_06

  • ps:在Linux中还可以使用crontab来开启定时任务。图中的例子为每10分钟运行一次py文件。

一次简单的爬虫体验_python_07