Python爬虫实现使用beautifulSoup4爬取名言网功能案例


Posted in Python onSeptember 15, 2019

本文实例讲述了Python爬虫实现使用beautifulSoup4爬取名言网功能。分享给大家供大家参考,具体如下:

爬取名言网top10标签对应的名言,并存储到mysql中,字段(名言,作者,标签)

#! /usr/bin/python3
# -*- coding:utf-8 -*-
from urllib.request import urlopen as open
from bs4 import BeautifulSoup
import re
import pymysql
def find_top_ten(url):
  response = open(url)
  bs = BeautifulSoup(response,'html.parser')
  tags = bs.select('span.tag-item a')
  top_ten_href = [tag.get('href') for tag in tags]
  top_ten_tag = [tag.text for tag in tags]
  # print(top_ten_href)
  # print(top_ten_tag)
  return top_ten_href
def insert_into_mysql(records):
  con = pymysql.connect(host='localhost',user='root',password='root',database='quotes',charset='utf8',port=3306)
  cursor = con.cursor()
  sql = "insert into quotes(content,author,tags) values(%s,%s,%s)"
  for record in records:
    cursor.execute(sql, record)
  con.commit()
  cursor.close()
  con.close()
# http://quotes.toscrape.com/tag/love/
#要获取对应标签中所有的名言 所以这里要考虑分页的情况
#经过在网页上查看知道分页查询的url
#http://quotes.toscrape.com/tag/love/page/1/
#判断到那一页没有数据 div.container div.row [1]
def find_link_content(link):
  page = 1
  while True:
    new_link = "http://quotes.toscrape.com" + link + "page/"
    # print(new_link)
    new_link = new_link + str(page)
    print(new_link)
    sub_bs = open(new_link)
    sub_bs = BeautifulSoup(sub_bs,'html.parser')
    quotes = sub_bs.select('div.row div.col-md-8 span.text')
    # 如果没有数据就退出
    if len(quotes) == 0:
      break
    #名言
    quotes = [quote.text.strip('“”') for quote in quotes]
    #作者
    authors = sub_bs.select('small.author')
    authors = [author.text for author in authors]
    # 标签
    tags_list = sub_bs.select('meta.keywords')
    tags_list = [tags.get('content') for tags in tags_list]
    # print(authors)
    # print(quotes)
    #print(tags_list)
    record_list = []
    for i in range(len(quotes)):
      tags = tags_list[i]
      tags = tags.replace(',',',')
      print(tags)
      record = [quotes[i],authors[i],tags]
      record_list.append(record)
    insert_into_mysql(record_list)
    page += 1
#
def main():
  url = "http://quotes.toscrape.com/"
  parent_link = find_top_ten(url)
  for link in parent_link:
    print(link)
    find_link_content(link)
if __name__ == '__main__':
  main()

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python通过post提交数据的方法
May 06 Python
Python计算已经过去多少个周末的方法
Jul 25 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
Python实现修改文件内容的方法分析
Mar 25 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
Python3标准库总结
Feb 19 Python
python设置环境变量的作用和实例
Jul 09 Python
python图片剪裁代码(图片按四个点坐标剪裁)
Mar 10 Python
Python如何读取、写入CSV数据
Jul 28 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
Jan 27 Python
python实现杨辉三角的几种方法代码实例
Mar 02 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 #Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 #Python
Python数据库小程序源代码
Sep 15 #Python
python中树与树的表示知识点总结
Sep 14 #Python
python树的同构学习笔记
Sep 14 #Python
python图形绘制奥运五环实例讲解
Sep 14 #Python
python列表插入append(), extend(), insert()用法详解
Sep 14 #Python
You might like
提升PHP执行速度全攻略(下)
2006/10/09 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
PHP模板解析类实例
2015/07/09 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
php报错502badgateway解决方法
2019/10/11 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
跟老齐学Python之有点简约的元组
2014/09/24 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
小学生期末评语大全
2014/04/21 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
公民代理授权委托书
2014/09/24 职场文书
2014年幼师工作总结
2014/11/22 职场文书
签证工作证明模板
2015/06/15 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
vscode内网访问服务器的方法
2022/06/28 Servers