Data-crawler-02第一个网络爬虫我们来这里是为了在宇宙中留下痕迹。否则为什么还要在这里。--SteveJobs本文主要内容来自《PythonWebCrawlerfromIntroductiontoPractice》一书的第2章,以及其网站给出的代码。1.环境配置python环境和anaconda的使用请参考Preface-02环境与配置章节。本次实验需要安装的库是requests和bs4。requests库:一个方便简单的PythonHTTP库,提供了所有的HTTP请求方法。其优点和特点可以在官方文档中找到。bs4库:全称BeautifulSoup,编写爬虫常用的库之一,主要用于解析html标签。安装#进入终端$condainstall-ndata_env_37requests#配置环境中的requests库及其依赖$condainstall-ndata_env_37beautifulsoup4#配置环境中的bs4库及其依赖$jupyter-notebook#打开jupyter并创建一个新笔记本2。第一个网络爬虫爬取作者维护的网页。感谢作者。如有侵权请告知。网页分析在抓取之前,我们需要对要抓取的网页做一些分析。这里我们以Safari浏览器为例。首先,我们需要打开浏览器的开发者模式,点击Safari浏览器-首选项-高级,勾选最下方,在菜单栏中显示“开发”菜单,然后,我们可以看到顶部出现了开发选项酒吧。然后进入网页,点击Develop-ShowWebpageInspector,会出现如下图所示的内容。先点击1,然后选择你要抓取的内容,比如2标题;点击后会出现title在代码中的位置,比如3,可以看到它的label和class信息,比如4处;这些信息将用于解析网页和提取数据的步骤2。第一步:获取网页importrequestsfrombs4importBeautifulSouplink="http://www.santostang.com/"#link为目标网页地址#定义请求头的浏览器代理,伪装成浏览器头={'User-Agent':'Mozilla/5.0(Windows;U;WindowsNT6.1;en-US;rv:1.9.1.6)Gecko/20091201Firefox/3.5.6'}r=requests.get(link,headers=headers)#请求网页打印(r.text)#r.text为获取的网页内容代码第二步:提取数据soup=BeautifulSoup(r.text,"html.parser")#分析页面代码#查找全部文章标题,定位class为"post-title"的h1元素,然后一个一个的提取,提取里面的字符串,strip()去除左右空格titles=soup.find_all("h1",class_="post-title")titlelist=[]fortitleintitles:titlelist.append(title.text.strip())print(titlelist)第三步:存储数据#打开一个空白的txt,使用f.write写入获取标题名称withopen('title_test.txt',"a+")asf:fortitleintitlelist:f.write(title+'\n')原文爬取了单个标题,这里我抓取了页面上的所有标题。您可以尝试爬取网页中的其他信息。再次感谢作者的贡献。参考资料Python网络爬虫从入门到实践第2章爬虫书籍代码python关于bs4库编排
