电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

林天宇用python3学习编写网络爬虫(之一)

18页
  • 卖家[上传人]:小**
  • 文档编号:88212172
  • 上传时间:2019-04-20
  • 文档格式:DOCX
  • 文档大小:4.58MB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、林天宇用Python3学习编写网络爬虫(之一:入门实践)作者:林天宇一、写在前面1、本文适应的读者范围l 会一点点Python的基本语法;l 已经安装好了Python3和PyCharm;l 网络爬虫新手2、本文所使用的开发环境l Mac pro / iOSl Python3l PyCharm3、本文不纠结以下内容l 为什么选择Python3而不是Python2?答:没什么特别原因,个人喜好。l 如何安装Pyhon3?请查阅其他文档。l PyCharm是什么?为什么不用其他工具。一个常用的Python开发工具,个人喜欢,可参阅其他文档。如果你不喜欢,你也可以用其他工具编码和调试。二、快速开始东北人有句话说:能动手,尽量不瞎叨叨。少些废话,快速开干。1、新建项目和文件启动PyCharm,“Create New Project”。因为估计不需要到特别的框架,所以类型就默认地选择了“Pure Python”,名字就起成了“WebSpider”(我瞎命名的,就是觉得Spider比较帅气而已),然后“Create”如下图:新建一个Python文件,命名为Spider001,毕竟也是我的第一只小爬虫

      2、嘛。OK,到目前为止,已经新建一个名字叫做Spider001的Python空白文件了。可以在项目等资源管理器中看到WebSpider项目下面,有一个Sider001.py的文件。我们接下来就对这个Sider001.py文件进行编辑和测试。2、第一爬先写代码,感受一下效果,找找成就感,然后再详细分析和思考。代码如下:import urllib.requesturl = http:/data = urllib.request.urlopen(url).read()data = data.decode(UTF-8)print(data)然后,Run,选择Spider001.py,运行结果如下:由上图可以见,运行正常,而且已经将百度的HTML代码获取到了(见运行窗口的第二行HTML代码)。百度心想,我也不知道倒了什么霉,你们爬虫测试的HelloWorld都喜欢拿我测试,无谓增加我压力。那我们再回头来详细看看刚才的代码:#首先引入urllib库的request子库import urllib.request#接着定义一个我们要爬取的变量叫url# 然后将我们要爬去的网址字符串值赋给url# 可怜的

      3、百度。url = http:/# 定义一个data变量,用来获取爬过来的字符串# 下面是urllib的吧啦吧啦的用法,没什么好解释的。# 它就是这么用的,记住就好了。# 其中url是变量。data = urllib.request.urlopen(url).read()# 编码,改变编码。 decode方法。data = data.decode(UTF-8)# print打印出来结果。print(data)# 程序结束我们可以得出以下几点初学者的心得:l 用到一个urllib的库。Urllib库及其子库的用法,官方文档如下:https:/docs.python.org/3/library/urllib.html l 其获取url其内容的方法为:urllib.request.urlopen(url地址).read()l 将字符串本身使用decode(编码类型)的方法后,可以重新编码3、美女图片!美女图片!都说美女是推动社会发展的重要因素,对美女的追求,也是推动我们宅男技术水平的重要因素。当年在学校机房里用486电脑DOS环境下,冒着被机房老师抓住的生命危险偷偷看舒淇的图片,确实对我当年的

      4、技术水平提升很大。第一爬的过程中,只爬了一串HTML源代码,似乎新鲜劲很快就过去了,真正我们要爬的,是美女图美女图啊!网站美女图片站众多,我本想选择我最喜欢的BeautyLeg作为测试的网站,但是很遗憾,可能这个网站的服务器在其他地区,网络速度很慢,图片质量又高,所以每次运行时间都会比较长,不太适合我们前期作为边调试边学习用。所以暂时放弃,不过,美腿们,不要着急,我调试好后,再来爬去你们。不要着急,等我。在此情况下,我随便百度了一个“美女图库”网站。真是百度的,一点广告费都没给的,美女图库。这个网站也是典型的“三级”结构的网站。所谓“三级”结构(别想歪了),指的是:我们先从最简单的开始,先将目标定在基础,也就是最详细这一级的内容开始爬取。我们先点击网站链接,到达第三级的详细图(文)这一层网页。我们避开了需要登录和收费的会员专区的栏目,选择了“免费下载栏目”进入,具体的网址如下:首页:http:/ urllib.request#估计后续得重用,所以将其写成一个函数def get_img(url,img_name): print(开始读取图片地址: + url) img_info=urll

      5、ib.request.urlopen(url).read() # 文件IO操作的办法,语法简单实用,一看就明白,暂时不详细说 with open(img_name,wb) as fp: fp.write(img_info) print(已下载完毕,保存为文件: + img_name) return# 用the_url和the_img_name分别存储这次测试的下载的文件地址以及要保存称为的文件名the_url = http:/ = 1.jpg# 调用下载图片的函数get_img(the_url,the_img_name)运行效果如下:打开程序文件所在的目录,果真1.jpg美女图已经静静地在文件夹下存在了。4、美女图片0.2版!好的,有点感觉了,但是还是不过瘾,看能否一次性把这个2016编号的美女图片集给全部爬下来。我们点开了下面的分页菜单:一页一页看下去,发现其图片的地址果然为:http:/ i=12: #因为i的数据类型是int,不能直接变成字符串,所以采用str函数转换了一下 page_num = str(i) the_url = http:/ the_img_name = pag

      6、e_num + .jpg # 调用下载图片的函数 get_img(the_url, the_img_name) i=i+1编写完毕,运行!运行效果如下:貌似一切顺利,怀着激动的心情进入文件夹,果然,12张美女图片都在文件夹里待着了。5、美女图片0.3版似乎总还是感觉缺少点什么,如果我们再把程序做得智能一点点,看是否可以,于是有以下几个想法的改进:l 输入为一个个人专辑的编号;l 系统自动读取该编号下图片的总数;l 系统建立一个为编号等目录,然后把该专辑的图片全部保存到该目录下。于是我们要学习几个技能:1)、正则表达式:目的是要从HTML字符串里,找到“共XX页”字样,读取XX这个信息。2)、文件夹操作:目的是如何建立一个文件夹目录,然后将这个图片好存在这个目录里。于是就有了以下的代码:import urllib.requestimport reimport os# 函数get_img# 功能:获取一个网上的图片,然后保存到本地# 参数:url(图片的网址),img_name(图片的名称)def get_img(url,img_name): print(开始读取图片地址: + url)

      7、img_info=urllib.request.urlopen(url).read() # 文件IO操作的办法,语法简单实用,一看就明白,暂时不详细说 with open(img_name,wb) as fp: fp.write(img_info) print(已下载完毕,保存为文件: + img_name) return# 需要爬取的专辑的参数编号this_f_num = 305#获取该专辑第一页的页面信息,然后采取正则的方式,获取其中共多少页f_html = urllib.request.urlopen(http:/ %this_f_num).read().decode(gbk)regex = r共(.*?)页pa = pile(regex)# 由于获取的是一个数组格式,但只有一个数字,于是将其读取出来。iMax = int(re.findall(pa,f_html)0)# 建立一个目录this_f_now = os.getcwd()f_path = this_f_now + / + str(this_f_num) +/if os.path.isdir(f_path)=False: os.mkdir(str(this_f_num)# 进入循环下载i=1while i=iMax: #因为i的数据类型是int,不能直接变成字符串,所以采用str函数转换了一下 page_num = str(i) the_url = http:/ str(this_f_num) + / +page_num+

      《林天宇用python3学习编写网络爬虫(之一)》由会员小**分享,可在线阅读,更多相关《林天宇用python3学习编写网络爬虫(之一)》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.