python简单实现爬取小说《天龙八部》,并在页面本地访问

写在前面:第一次使用爬虫,甚至都算不上爬虫,水平有限,主要作为学习记录。

主要业务流程如下:

使用python的requests模块获取页面信息

通过re模块(正则表达式)取出需要的内容(小说标题,正文)

通过MysqlDB模块入库

使用webpy模块进行访问

下面是效果图,简单实现了点击上一页、下一页翻页的功能:

目录结构如下:

D:\PROJECT\SPIDER
│  fiction_spider.py
│  webapp.py

└─template
        index.html

爬取信息及入库代码如下:

#coding:utf-8#fiction_spider.py
import requests
import re
import MySQLdb

def get_title():
    html = requests.get(‘http://www.jinyongwang.com/tian/‘).content
    rem = r‘<li><a href="(.*?)">(.*?)</a>‘
    return  re.findall(rem,html)

def get_content(url):
    html = requests.get(‘http://www.jinyongwang.com/‘+url).content
    #print html
    matchs_p = r‘<p>(.*?)</p><script.*?‘
    data = re.findall(matchs_p, html)
    return data[0]

if __name__ == ‘__main__‘:
    a = MySQLdb.connect(host=‘10.1.*.*‘, port=3306, user=‘user‘, passwd=‘passwd‘, db=‘testdb‘, charset=‘utf8‘)
    for i in get_title():
        cur = a.cursor()
        print i[1]
        print i[0]
        sqli = ‘INSERT INTO `fiction` (`title`, `content`) VALUES ("%s","%s" )‘%(i[1],get_content(i[0]))
        cur.execute(sqli)
        cur.close()
        a.commit()
    a.close()

页面代码如下:

#coding:utf-8#webapp.py
import web
import re

urls = (‘/(.*)‘,‘Index‘)

db = web.database(dbn = ‘mysql‘,host=‘10.1.*.*‘, port=3306, user=‘user‘, passwd=‘passwd‘, db=‘testdb‘, charset=‘utf8‘)

render = web.template.render(‘template‘)

class Index:
    def GET(self,html):
        id = re.findall(‘(.*?).html‘,html)[0]
        print id
        data = db.query("select * from fiction where id=%s"%id)
        return render.index(data[0],id)

if __name__ == ‘__main__‘:

    web.application(urls,globals()).run()

页面访问的index.html内容如下:

$def with(data,s)
<meta charset="utf-8"/>
<title>$:data.title</title>
<h1>$:data.title</h1>
<div style="margin:0px auto;text-align:center;">
<a href="$:(int(s)-1).html">上一页</a>
<a href="$:(int(s)+1).html">下一页</a>
</div>
$:data.content
<br>
<div style="margin:0px auto;text-align:center;">
<a href="$:(int(s)-1).html">上一页</a>
<a href="$:(int(s)+1).html">下一页</a>
</div>
时间: 2024-11-05 15:57:11

python简单实现爬取小说《天龙八部》,并在页面本地访问的相关文章

Python爬虫:爬取小说并存储到数据库

爬取小说网站的小说,并保存到数据库 第一步:先获取小说内容 #!/usr/bin/python # -*- coding: UTF-8 -*- import urllib2,re domain = 'http://www.quanshu.net' headers = {     "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom

Python 简单爬虫 爬取知乎神回复

看知乎的时候发现了一个 “如何正确地吐槽” 收藏夹,里面的一些神回复实在很搞笑,但是一页一页地看又有点麻烦,而且每次都要打开网页,于是想如果全部爬下来到一个文件里面,是不是看起来很爽,并且随时可以看到全部的,于是就开始动手了. 工具 1.Python 2.7 2.BeautifulSoup 分析网页 我们先来看看知乎上该网页的情况: 网址: ,容易看到,网址是有规律的,page慢慢递增,这样就能够实现全部爬取了. 再来看一下我们要爬取的内容: 我们要爬取两个内容:问题和回答,回答仅限于显示了全部

python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)

转载出处:药少敏   ,感谢原作者清晰的讲解思路! 下述代码是我通过自己互联网搜索和拜读完此篇文章之后写出的具有同样效果的爬虫代码: 1 from bs4 import BeautifulSoup 2 import requests 3 4 if __name__ == '__main__': 5 html = requests.get('http://www.136book.com/huaqiangu/') 6 soup = BeautifulSoup(html.content, 'lxml'

Python实战项目网络爬虫 之 爬取小说吧小说正文

本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 链接:http://tieba.baidu.com/p/4792877734 首先,自己定义一个类,方便使用.其实类就像一个"水果篮",这个"水果篮"里有很多的"水果",也就是我们类里面定义的变量啊,函数啊等等,各种各样的.每一种"水果&q

Golang 简单爬虫实现,爬取小说

为什么要使用Go写爬虫呢? 对于我而言,这仅仅是练习Golang的一种方式. 所以,我没有使用爬虫框架,虽然其很高效. 为什么我要写这篇文章? 将我在写爬虫时找到资料做一个总结,希望对于想使用Golang写爬虫的你能有一些帮助. 爬虫主要需要解决两个问题: 获取网页 解析网页 如果这两个都无法解决的话就没法再讨论其他了. 开发一个爬取小说网站的爬虫会是一个不错的实践. 这是两个实例: Golang 简单爬虫实现 golang 用/x/net/html写的小爬虫,爬小说 这是需要的两个项目: go

Python 爬取小说——《唐朝小闲人 》

# 爬取小说:唐朝小闲人 # 导入需要用到的库 import requestsimport osimport reimport timeimport random # 查看源网页 beginurl = 'https://www.sbiquge.com/2_2523/' # 目录网页 ## 爬取各章网页 url_response = requests.get(beginurl).text                 #目录网页的源代码url_regex = '<a href ="/2_2

[Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

一. 文章介绍 前一篇文章"[python爬虫] Selenium爬取新浪微博内容及用户信息"简单讲述了如何爬取新浪微博手机端用户信息和微博信息. 用户信息:包括用户ID.用户名.微博数.粉丝数.关注数等. 微博信息:包括转发或原创.点赞数.转发数.评论数.发布时间.微博内容等. 它主要通过从文本txt中读取用户id,通过"URL+用户ID" 访问个人网站,如柳岩: http://weibo.cn/guangxianliuya 因为手机端数据相对精简简单,所以采用输

[python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pythonpython爬虫正则表达式html知识总结 2016-04-07 06:13 3615人阅读 评论(4) 收藏 举报  分类: Python爬虫(23)  Python基础知识(17)  版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ 这篇文章主要是介绍Pytho

python+selenium+PhantomJS爬取网页动态加载内容

一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览器PhantomJS来抓取javascript渲染的页面,下面实现一个简单的爬取 环境搭建 准备工具:python3.5,selenium,phantomjs 我的电脑里面已经装好了python3.5 安装Selenium pip3 install selenium 安装Phantomjs 按照系统