爬虫学习1:初识

851次阅读
没有评论
爬虫学习1:初识

爬虫的由来简介:

    在互联网诞生的年代,许多人建立了自己的网站,但是大家怎么知道别人的网站网址是什么呢?

    开始的时候人们都是拿了个本子记下,但是这样的缺点很明显:<1>每有新的就要自己记录<2>只能知道自己的。  

    于是,就有人想把这些收集起来,以后大家不必自己记录,我帮大家记录,大家有需要找我即可,这就是百度谷歌等搜索引擎公司干的事了。 

    但是,网站那么多,一个个记录效率低下,也不现实,于是,就有人分析网站,发现很多网站都有像“友情链接”这种超链接,于是他就写个程序自动把网站里的超链接提取出来收录,这样一个超链接里面还有别人的超链接,各个超链接连接起来像一张网一样,而收录程序,通过一个超链接到另外一个超链接,像虫子在网上爬一样,这就是爬虫程序的由来

 

所以,爬虫程序要做两件事,一下载网页,二分析网页的内容,提取超链接

 

在python中,下载网页用requests模块,而分析则用BeautifulSoup模块(安装的时候是 pip install BeautifulSoup4)

值得一提的是BeautifulSoup模块,一般网站下载下来后,都是通过正则匹配对应的字段,但是BeautifulSoup根据html的包含关系,分割成了各个对象并树状结构关联(比如<p><li>xxx</li></p> 分割成了p标签对象,p对象里面嵌套li对象),然后提供方法进行正则匹配

 

一个简单的查找“教育”关键字读后感链接的爬虫程序如下:

import requests,re from bs4 import BeautifulSoup for num in range(1,100): # 这里的网站是根据page_后面加数字来分页的,据此构造url url=”https://www.simayi.net/page_%s/” %num response=requests.get(url=url) # 根据返回的编码apparent_encoding 解码 response.encoding=response.apparent_encoding

# 默认分析引擎是html.parser,其他需要安装第三方软件 soup = BeautifulSoup(response.text,’html.parser’)

# find()查找第一个匹配得到对象,find_all()查找全部得到对象列表 # attrs表示查找属性值class=’post multi’ # 查找类似p标签只需要 find_all(‘p’) art_list=soup.find_all(attrs={“class”,’post multi’}) art_dict={} for item in art_list: art_dict[item.find(“a”).text]=item.find(“a”).attrs

for k,v in art_dict.items(): if re.search(“教育”,k, flags=0): print(k,v)

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-11-01发表,共计1224字。
新手QQ群:570568346,欢迎进群讨论 Python51学习