简单小爬虫(二)

针对上个爬虫小程序后续做了一些修改增加了一些功能

功能:打开浏览器进行观看

首先我们要安装

selenium

Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成。Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。


之后是安装浏览器驱动

因为我使用的是chrome浏览器,因此介绍chrome浏览器驱动的安装


如何查看浏览器版本:




下载地址:http://chromedriver.storage.googleapis.com/index.html


windows 下,新建一个命名为chromedriver文件夹,将解压的chromedriver.exe放python进文件夹中,再配置进path环境变量


之后是配置环境变量

介绍window10 的配置:







把python的路径粘贴过来保存就完成了

(注意:一定要下载对应版本的浏览器驱动)



def get_pict_src(html):
	browser = webdriver.Chrome()#启动浏览器
	browser.get(html)#打开网页
	time.sleep(3)
	attempts=0
	while attempts<2:
		try:
			s1 = Select(browser.find_element_by_class_name('mh_readmode'))#寻找连续阅读的选项按钮
			s1.select_by_value("3")#发现按钮的值为3
			time.sleep(3)
		except Exception as e:
			print(e)
		attempts+=1

需要打开的章节地址,使用驱动打开浏览器,并选择连续阅读


附上代码吧:

from bs4 import BeautifulSoup as bs 
from urllib import request
import urllib
from selenium import webdriver
import time
from selenium.webdriver.support.ui import Select
def get_url(url):
	headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
	request1 = request.Request(url, headers=headers) 
	respond=request.urlopen(request1)
	html=respond.read().decode('utf-8')
	return html






def parser_html(html):
	#print(html)
	soup=bs(html,'html.parser')#创建beautisoup对象,
	ul_list=soup.find_all('a',class_='sdiv')
	print(type(ul_list))
	page_dic={'':''}#保存链接与漫画名称
	for i in ul_list:
		print(i['href'],i['title'])
		page_dic[str(i['href'])]=i['title']
	for k,v in page_dic.items():
			print(k,v)
	return page_dic


'''
取出网站,进行拼接


'''
def href_comb(page_dic):
	href='http://www.manhuatai.com'
	while 1:
		try:
			name=input('请输入漫画名')
			for k,v in page_dic.items():
				if(name==v):
					print(name)
					href1=k
					return href+href1
		except Exception as e:
			print("输入不规范,请重新输入")
				




		
'''
寻找章节
'''
def search_top(html):
	s=bs(html,'html.parser')
	topic1=s.find_all('ul',id='topic1')
	print(len(topic1))
	topic1_a=topic1[0].find_all('a')
	for i_a in topic1_a:
		print(i_a.string,i_a['href'])
	while 1:
		try:
			srting_top=input("请输入需要查看的章节")
			for i_a in topic1_a:
				if srting_top==i_a.string:
					return 'http://www.manhuatai.com'+i_a['href']
		except Exception as e:
			print("输入错误,请再次输入需要查看的章节")
		
	
	'''
寻找图片链接
'''
def get_pict_src(html):
	browser = webdriver.Chrome()#启动浏览器
	browser.get(html)#打开网页
	time.sleep(3)
	attempts=0
	while attempts<2:
		try:
			s1 = Select(browser.find_element_by_class_name('mh_readmode'))#寻找连续阅读的选项按钮
			s1.select_by_value("3")#发现按钮的值为3
			time.sleep(3)
		except Exception as e:
			print(e)
		attempts+=1




if __name__ == '__main__':
	while 1:
		html=get_url('http://www.manhuatai.com/zhiyinmanke.html')
		page_dic=parser_html(html)
		href=href_comb(page_dic)
		print(href)
		topic_html=get_url(href)
		topic_href=search_top(topic_html)
		print(topic_href)
		get_pict_src(topic_href)
		#save_picture(get_pict_src(topic_href))
		targer=input("是否退出,退出请输入1,继续查看请输入2")
		if targer==1:
			break
	#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值