您好,盖德化工网欢迎您,[请登录]或者[免费注册]
  您现在的位置: 主页 > 买马开奖网站 >
  • 企业实名认证:已实名备案
  • 荣誉资质:0项
  • 企业经济性质:私营独资企业
  • 86-0571-85586718
  • 13336195806
  • Python 爬虫:Beautiful Soup 实例(三)
来源:本站原创  作者:admin  更新时间:2019-09-09  浏览次数:

  本港台开奖现场报码室,现在娱乐消费好贵。最便宜最方便的娱乐消费莫过于在网上看小说了(网游还需要充值,看电影一次至少两小时),看小说就绕不开原创中文小说网站——起点中文。看小说不喜欢那种看一章等一章的看法,说不定一不小心小说就无限期的断更了,还是直接看那些完本小说比较爽快。本文将使用bs4获取起点中文网所有的完本小说信息,并将其保存到中去。

  打开起点中文网,搜索所有的完本小说。在浏览器中打开网页,鼠标单击上方栏目的全部作品,然后再将左侧的状态修改为完本,如图1所示。

  看看当前网页的网址是。找到下一页的链接,鼠标单击该链接进入下一页。这一页的网址是。把最后一个参数page=2修改为page=1测试一下。发现页面的内容和页面的内容是一样的。现在需要爬的页面命名规则已经有了,只需要修改最后那个page的参数就可以了。

  因为最后还需要将结果保存到中去,所以还得添加一个自定义的模块(也就是一个自建程序)。

  至此,该项目中的所有代码已经完成了。因为要将数据保存到远程MySQL,首先得在MySQL服务器上创建好数据库和表。在Scrapy项目中创建过一个MySQL服务器,并分别在Windows和Linux系统上安装了Python中支持MySQL的模块Pymysql3。这里就直接使用现成的MySQL服务器就可以了。与Scrapy项目不同的是,这里存储数据到MySQL服务器是远程存储,Scrapy项目的存储是本地存储。本机与MySQL服务器的关系如图2所示。

  使用Putty登录到。进入为bs4项目创建一个,并为qidianBS4项目创建一个表。

  创建一个名为bs4DB的,并在中建立一个qiDianBooks的表,所有编码都使用utf8编码,执行结果如图3所示。

  这里需要说明的是,crawlUSER这个用户在Scrapy项目中已经创建过了,如果没有创建这个用户,则需要在MySQL中执行命令:

  已经准备好了,可以运行程序了。单击Eclipse图标栏上的运行图标,执行该项目,得到的结果如图5所示。

  保存到本地的文件内容有乱码,是不是?没关系,用自带的记事本打开就没有了,只是编码问题。再来看看保存到的。使用pytty登录到,连接到后,在里执行命令:

  保存的结果是12396条,而网站上显示所有的全本小说是14380本,大约有2000本小说没有被录上。稍微修改一下程序,可以从log中得到哪些小说没有被爬取。大致检查了一下,有一些小说记录的标签与设置的标签不太一样,如果需要读取完整的列表请自行修改一下。另外,这个程序的瑕疵在于MySQL保存数据时使用的都是char类型,如果要追求完美,可以将日期改成Date类型,将字数改成int类型等。

  completeBook.py中第9~15行是导入需要的模块。第18~24行是仿照Scrapy建立的一个item类。第27~93行是自定义类GetBookName,用于从起点中文网站获取全本小说的信息。

  第41~48行是从网站起始页面中获取了总共的页数。因为这个总页数并不是单独包含在某个标签内的,所以这里使用re模块将这个页数过滤出来。

  第62~82行的spider函数使用bs4模块从原始数据中过滤出所需要的数据,然后将数据保存到了self.booksList列表中去。

  第95~96行是__main__程序,只有一条命令,作用是实例化GetBookName类。返回搜狐,查看更多