搜索进行爬取你自己喜欢的小说
我是一个小说爱好者,喜欢看小说,这也是我学习爬虫其中的一个原因。
我喜欢看网络小说,经常需要从网上下载小说。有的还不好找,有的下载不了,如果是正在更新的小说来说,就很难下载到txt或者其他格式的小说。我就是不想花太多时间找冷门小说的下载资源,因此稍微学习了python的爬虫知识。
废话不多说,直接开始。。。。。。。。。。。。。。。
需要安装的库requests,lxml
这次爬去的是笔趣阁的资源
大概分这几步;
1:输入想爬取的小说
2:获取网页源代码
3:进行对比小说资源
4:获取每章的url
5:获取每章的内容
6:数据清洗后,循环下载保存文件中
1:输入想爬取的小说
这里也可以利用浏览器进行搜索,由于没有拼接使用,所以直接利用拼接url来进行实现。
// An highlighted block
def loginzhihu(): # url进行拼接
url = 'https://www.xxbiquge.com/'
"""
利用浏览器搜索
"""
# try:
# brower = webdriver.Firefox() # 初始化一个火狐浏览器实例:driver
# # dr=webdriver.Chrome() 调用谷歌浏览器
# brower.implicitly_wait(8) # 设置隐式等待时间
# brower.maximize_window() # 最大化浏览器
# brower.get(url) # 通过get()方法,打开一个url站点
#
# brower.find_element_by_xpath('//*[@id="keyword"]').send_keys(str(p)) # 搜索框输入胡歌
# brower.find_element_by_xpath('//*[@id="wrapper"]/div[2]/div[2]/span/input').click() # 点击百度一下按钮
#
# time.sleep(2) # 等待2秒
# sousuoye = brower.current_url
# print("搜索页网址:" + sousuoye)
# brower.quit() #退出浏览器
# sousuo(sousuoye)
#
#
# except ElementNotVisibleException as e: #进行错误提示
# print(e)
"""
利用url进行拼接
"""
p = input("请输入下载的小说:")
Baseurl = url + "search.php?keyword=" + str(p)
sousuo(Baseurl,p)
2:获取网页源代码
进行封装到一块,对每个网站进行获取网页源代码
def request_url(url): # 对每个网站的网页进行解析显示原网页
s = requests.Session()
html = s.get(url)
html.encoding = 'utf-8'
return html.text
3:进行对比小说资源
进入结果页后,由于搜索后有许多小说,所以要进行比对,,看哪一个是自己寻找的小说,如果比对成功,则直接下一步,进行下载,不然就结束本次程序。
def sousuo(url,p): # 按照小说的名字进行搜索小说
html = request_url(url)
htm = etree.HTML(html)
url_sousuoye = htm.xpath("//div[3]/div[1]/div[2]/h3/a/@href")[0]
print("搜索的小说网址:" + url_sousuoye)
# fiction_name = htm.xpath("/html/body/div[3]/div/div[2]/h3/a/span/text()")[0] # 获取小说名进行对比
fiction_list = htm.