python实现列表页数据的批量抓取,练手的,下回带分页的

#!/usr/bin/env python
# coding=utf-8 import requests
from bs4 import BeautifulSoup
import pymysql import sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') # Change default encoding to utf8 print('连接到mysql服务器...')
db = pymysql.connect("localhost","root","root","python")
print('连接上了!')
cursor = db.cursor() hdrs = {'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)'} url = "http://www.zztez.com/tezgl/" r = requests.get(url, headers = hdrs)
soup = BeautifulSoup(r.content.decode('gbk', 'ignore'), 'lxml') def has_class_but_no_id(tag):
return tag.has_attr('title') and tag.has_attr('href') and not tag.has_attr('target') urls = []
for link in soup.find_all(has_class_but_no_id):
url="http://www.zztez.com" + link.get('href')
r = requests.get(url, headers = hdrs)
soup = BeautifulSoup(r.content.decode('gbk', 'ignore'), 'lxml') title=soup.find("h1")
title=title.string.encode("utf-8") intro=soup.select(".intro")
rintro=intro[0].string.encode("utf-8") content=soup.select(".content")
rcontent=content[0].encode("utf-8") #查询数据
sql="SELECT count(*) as total FROM article WHERE title like %s"
data=(title)
row_affected=cursor.execute(sql,data)
one=cursor.fetchone() if one==(0,):
insert = ("INSERT INTO article(title,intro,content)" "VALUES(%s,%s,%s)")
data = (title, rintro, rcontent)
cursor.execute(insert, data)
db.commit() print('爬取数据并插入mysql数据库完成...')

python实现列表页数据的批量抓取练手练手的的更多相关文章

  1. Web Scraper 翻页——控制链接批量抓取数据

    ![](https://image-1255652541.cos.ap-shanghai.myqcloud.com/images/20190708214014.png) 这是简易数据分析系列的第 5 ...

  2. Web Scraper 翻页——控制链接批量抓取数据(Web Scraper 高级用法)| 简易数据分析 05

    这是简易数据分析系列的第 5 篇文章. 上篇文章我们爬取了豆瓣电影 TOP250 前 25 个电影的数据,今天我们就要在原来的 Web Scraper 配置上做一些小改动,让爬虫把 250 条电影数据 ...

  3. 使用HtmlAgilityPack批量抓取网页数据

    原文:使用HtmlAgilityPack批量抓取网页数据 相关软件点击下载登录的处理.因为有些网页数据需要登陆后才能提取.这里要使用ieHTTPHeaders来提取登录时的提交信息.抓取网页  Htm ...

  4. thinkphp5 列表页数据分页查询3-带搜索条件

    先加载模板然后在前端HTML页面请求数据 /** * 加载列表页模板 * @author 冯广福 */ public function index() { LogWriteService::write ...

  5. Hibernate学习---第十一节:Hibernate之数据抓取策略&批量抓取

    1.hibernate 也可以通过标准的 SQL 进行查询 (1).将SQL查询写在 java 代码中 /** * 查询所有 */ @Test public void testQuery(){ // ...

  6. Python3利用BeautifulSoup4批量抓取站点图片的代码

    边学边写代码,记录下来.这段代码用于批量抓取主站下所有子网页中符合特定尺寸要求的的图片文件,支持中断. 原理很简单:使用BeautifulSoup4分析网页,获取网页<a/>和<im ...

  7. [Python爬虫] 之九:Selenium +phantomjs抓取活动行中会议活动(单线程抓取)

    思路是这样的,给一系列关键字:互联网电视:智能电视:数字:影音:家庭娱乐:节目:视听:版权:数据等.在活动行网站搜索页(http://www.huodongxing.com/search?city=% ...

  8. php中CURL技术模拟登陆抓取数据实战,抓取某校教务处学生成绩。

    这两天有基友要php中curl抓取教务处成绩的源码,用于微信公众平台的开发.下面笔者只好忍痛割爱了.php中CURL技术模拟登陆抓取数据实战,抓取沈阳工学院教务处学生成绩. 首先,教务处登录需要验证码 ...

  9. 如何上传Packages到PyPI并批量抓取

    1.如何上传包到PyPI ? 更新中... 2.批量抓取simple网站第三方模块 https://pypi.python.org/simple/ 3. 第三方模块的安装和使用 python  set ...

随机推荐

  1. Flask第31课——include标签

    我们在上一节代码基础上增加一些代码,样式: 文件名index.html,代码: {% from 'macros/forms.html' import input %} <!DOCTYPE htm ...

  2. ZOJ3545 Rescue the Rabbit

    分析 未知定长串中不同已知模板串的出现次数问题,一般做法是AC自动机上dp. 考虑背包,\(dp(i,j,k)\)表示当前串长为\(i\),在AC自动机上对应节点\(j\),已匹配的模板串的状态为\( ...

  3. C#编程之IList<T>、List<T>、ArrayList、IList, ICollection、IEnumerable、IEnumerator、IQueryable 和 IEnumerable的区别

    额...今天看了半天Ilist<T>和List<T>的区别,然后惊奇的发现使用IList<T>还是List<T>对我的项目来说没有区别...  在C#中 ...

  4. c++标准库的所有类型

    标准库的组成:    前言就到此为止.从最宏观的层面上看,C++标准库由十个部分组成:语言支持.诊断.通用工具.字符串.本地化.容器.迭代器.通用算法.数值算法和I/O. 头文件组成:    C++ ...

  5. 常用C库函数功能及用法

    二.字符函数 调用字符函数时,要求在源文件中包下以下命令行: #include <ctype.h> 函数原型说明 功能 返回值 int isalnum(int ch) 检查ch是否为字母或 ...

  6. coffeescript学习

    test2.coffeestdin = process.openStdin()stdin.setEncoding 'utf8' stdin.on 'data', (input) ->     n ...

  7. 【转】每天一个linux命令(16):which命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/11/08/2759805.html 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面 ...

  8. oracle之 手动创建 emp 表 与 dept 表

    说明: 有时候我们需要通用的实验数据,emp表 与 dept表  但是数据库中有没有. 这时,我们可以手动创建. -- 创建表与数据CREATE TABLE EMP(EMPNO NUMBER(4) N ...

  9. commons-logging log4j logback 知识点

    log4j 2,需要导入2个jar包: log4j-core-xx.jar log4j-api-xx.jar log4j 2 的 properties 配置文件名字为: log4j2.properti ...

  10. linux 命令:chmod权限设置命令

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...