简单小爬虫(二)

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

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

首先我们要安装

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
	#

猜你喜欢

转载自blog.csdn.net/zpc17875305019/article/details/80811182