python 嵌套爬取网页信息
当需要的信息要经过两个链接才能打开的时候,就需要用到嵌套爬取。
比如要爬取起点中文网排行榜的小说简介,找到榜单网址:https://www.qidian.com/all?orderId=&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=0&page=1
将榜单上的小说链接爬出来,在从小说链接里面爬小说简介
import pymysql
import requests
from hashlib import md5
import re
import os #获取网页源代码
def get_one_page(url):
# 设置请求头,防止被网站屏蔽
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except requests.HTTPError as e:
print("由于某种原因获取页面出现错误!"+str(e)) #爬出目标信息所在的网址
def parse_page1(url,list):
#获取网页内容
html=get_one_page(url)
#将正则表达式编译成正则表达式对象
pattern=re.compile('<h4><a href="(.*?)" target="_blank" data-eid',re.S)
#正则表达式1匹配的是目标信息的网址
contents = re.findall(pattern, html)
for i in contents:
list.append(i)#向列表添加对象
return list #从网址中爬出目标信息
def parse_page2(url,list):#信息
#获取网页内容
url='https:'+url#############要注意爬出的网址是否完整,不完整记得补全,否则会出错
html=get_one_page(url)
#将正则表达式编译成正则表达式对象
pattern=re.compile('<p class="intro">(.*?)</p>',re.S)
#正则表达式2匹配的是目标信息
contents = re.findall(pattern, html)
for i in contents:
list.append(i)#向列表添加对象
return list # info_list存的是目标信息的网址
info_list=[] start_url='https://www.qidian.com/all'
info_list=parse_page1(start_url,info_list) # range()包头不包尾`
for i in range(,):#range(,,-),-1表示顺序递减
url = 'https://www.qidian.com/all?orderId=&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=0&page=' + str(i)
info_list = parse_page1(url, info_list) #输出目标网址 cnt=
for i in info_list:
cnt=cnt+
i='https:'+i
print(i) #输出网址数量 print("一共有"+str(cnt)+"条数据") # x_list存的是目标信息,从目标信息所在的网址爬出需要的目标信息
x_list=[]
for i in info_list:
x_list=parse_page2(i,x_list) #输出目标信息
for i in x_list:
print(i)
#如果爬的数量比较多,要等久一会才有输出
python 嵌套爬取网页信息的更多相关文章
- Python爬取网页信息
Python爬取网页信息的步骤 以爬取英文名字网站(https://nameberry.com/)中每个名字的评论内容,包括英文名,用户名,评论的时间和评论的内容为例. 1.确认网址 在浏览器中输入初 ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- python学习之——爬取网页信息
爬取网页信息 说明:正则表达式有待学习,之后完善此功能 #encoding=utf-8 import urllib import re import os #获取网络数据到指定文件 def getHt ...
- 常用正则表达式爬取网页信息及HTML分析总结
Python爬取网页信息时,经常使用的正则表达式及方法. 1.获取<tr></tr>标签之间内容 2.获取<a href..></a>超链接之间内容 3 ...
- python之爬取网页数据总结(一)
今天尝试使用python,爬取网页数据.因为python是新安装好的,所以要正常运行爬取数据的代码需要提前安装插件.分别为requests Beautifulsoup4 lxml 三个插件 ...
- Python简单爬取图书信息及入库
课堂上老师布置了一个作业,如下图所示: 就是简单写一个借书系统. 大概想了一下流程,登录-->验证登录信息-->登录成功跳转借书界面-->可查看自己的借阅书籍以及数量... 登录可以 ...
- python动态爬取网页
简介 有时候,我们天真无邪的使用urllib库或Scrapy下载HTML网页时会发现,我们要提取的网页元素并不在我们下载到的HTML之中,尽管它们在浏览器里看起来唾手可得. 这说明我们想要的元素是在我 ...
- python爬虫——爬取网页数据和解析数据
1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.只要浏览器能够做的事情,原则上,爬虫都能够做到. 2 ...
- 用shell脚本爬取网页信息
有个小需求,就是爬取一个小网站一些网页里的某些信息,url是带序号的类似的,不需要写真正的spider,网页内容也是差不多的 需要取出网页中<h1></h1>中间的字符串,而且 ...
随机推荐
- 首款中文渗透测试专用Linux系统—MagicBox
1. MagicBox的介绍 首款中文渗透测试专用Linux系统——MagicBox即将问世,中文名称:“魔方系统”,开发代号:Genesis.第一版本发布时间计划为2012年12月5日 这是 ...
- springMVC List对象转换为json列表对象
@ResponseBody @RequestMapping("xxx.do") public List<POJO> getList(){ return List< ...
- 移动互联网APP测试流程及测试点
1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先向主管确认项目排期. 1.3测试资源 测 ...
- UOJ192 最强跳蚤
题目链接 problem 给出一个n个点带边权的树,问有多少对\((u,v)\)满足\(u\)到\(v\)路径上边权的乘积为完全平方数. \(n\le 10^5,w\le 10^8\) solutio ...
- 089、Java中String类之利用构造方法实例化
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- poj1703 Find them, Catch them(种类并查集
题目地址:http://poj.org/problem?id=1703 题目大意:警察抓了n个坏蛋,这些坏蛋分别属于龙帮或蛇帮.输入m个语句,A x y询问x和y的关系(在一个帮派,不在,不能确定), ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:自适应大小的按钮组
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Express 应用程序生成器
通过应用生成器工具 express-generator 可以快速创建一个应用的骨架. express-generator 包含了 express 命令行工具.通过如下命令即可安装: $ npm ins ...
- linux 下office软件推荐
概述 最近想使用LINUX下搭建服务器,所以查找一些需要用的软件. linux下最好的office解决办法 其实因为我是不怎么使用office的,我也不知道不同office有什么不一样,直到有一次写奖 ...
- C#知识点回顾随笔目录导航
此随笔只是春节期间回顾知识点,阅读<<C#学习笔记>>记录(2019-2-4至2019...); 使用有道云笔记记录可能会有些排版问题 思维导图预览(使用的有道云,无法截取完整 ...