python网络爬虫自动化下载股票类电子书(1)
2017-12-10 21:24
274 查看
写了一个自动化下载的程序,下载了几个试了一下,发现当百度云中要下载的文件过大的时候,频繁下载需要验证码的时候,不使用百度云下载的时候,会出现下载失败,程序还要进一步改进。姑且跑一边试试
#2018-02-07:今天又尝试下载了一下,面临两个问题,第一个是百度网盘下载次数多之后会出现验证码,第二个是百度网盘的文件数是几个是不确定的,原代码仅仅只能适用一个文件的情形。后续可以尝试保存到自己的网盘中,不进行下载。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pandas as pd
import requests
import re
import time
driver=webdriver.Chrome()
def xiazai(myurl):
myrul=url_list[1]
try:
all_handles = driver.window_handles
if len(all_handles)==1:
driver.switch_to_window(all_handles[0])
if len(all_handles)>1:
for i in range(1,len(all_handles)):
driver.switch_to_window(all_handles[i])
driver.close()
driver.switch_to_window(all_handles[0])
driver.get('http://www.88gs.com'+myurl)
#获取下载地址
page=driver.page_source
p_url=re.compile(r"""<ul class="downlistbox">[\s\S]*?<a href="([\s\S]*?)"><img src=""")
url=p_url.findall(page)[0]
#进入下载地址
driver.get('http://www.88gs.com'+url)
driver.find_element_by_partial_link_text('下载地址1').click()
all_handles = driver.window_handles #获取所有窗口句柄
driver.switch_to_window(all_handles[1])
time.sleep(5)
#百度网盘下载
#driver.find_element_by_partial_link_text('下载').click()
driver.find_element_by_xpath('//*[@id="layoutMain"]/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]/span/span').click()
time.sleep(5)
driver.close() #关闭当前窗口
driver.switch_to_window(all_handles[0]) #返回主窗口
except:
lose_url.append('http://www.88gs.com'+url)
def get_url():
url_list=[]
for i in range(1,132):
print(i)
url='http://www.88gs.com/soft/sort011/list11_'+str(i)+'.html'
#url='http://www.88gs.com/soft/sort011/list11_131.html'
driver.get(url)
page=driver.page_source
p_url=re.compile(r"""mainSoftName"><a href="([\s\S]*?)"[\s\S]*?title=""")
url=p_url.findall(page)
url_list.extend(url)
return url_list
url_list=get_url()
len(url_list)
lose_url=[]
for myurl in url_list[2:]:
xiazai(myurl)
print(myurl)
#2018-02-07:今天又尝试下载了一下,面临两个问题,第一个是百度网盘下载次数多之后会出现验证码,第二个是百度网盘的文件数是几个是不确定的,原代码仅仅只能适用一个文件的情形。后续可以尝试保存到自己的网盘中,不进行下载。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import pandas as pd
import requests
import re
import time
driver=webdriver.Chrome()
def xiazai(myurl):
myrul=url_list[1]
try:
all_handles = driver.window_handles
if len(all_handles)==1:
driver.switch_to_window(all_handles[0])
if len(all_handles)>1:
for i in range(1,len(all_handles)):
driver.switch_to_window(all_handles[i])
driver.close()
driver.switch_to_window(all_handles[0])
driver.get('http://www.88gs.com'+myurl)
#获取下载地址
page=driver.page_source
p_url=re.compile(r"""<ul class="downlistbox">[\s\S]*?<a href="([\s\S]*?)"><img src=""")
url=p_url.findall(page)[0]
#进入下载地址
driver.get('http://www.88gs.com'+url)
driver.find_element_by_partial_link_text('下载地址1').click()
all_handles = driver.window_handles #获取所有窗口句柄
driver.switch_to_window(all_handles[1])
time.sleep(5)
#百度网盘下载
#driver.find_element_by_partial_link_text('下载').click()
driver.find_element_by_xpath('//*[@id="layoutMain"]/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]/span/span').click()
time.sleep(5)
driver.close() #关闭当前窗口
driver.switch_to_window(all_handles[0]) #返回主窗口
except:
lose_url.append('http://www.88gs.com'+url)
def get_url():
url_list=[]
for i in range(1,132):
print(i)
url='http://www.88gs.com/soft/sort011/list11_'+str(i)+'.html'
#url='http://www.88gs.com/soft/sort011/list11_131.html'
driver.get(url)
page=driver.page_source
p_url=re.compile(r"""mainSoftName"><a href="([\s\S]*?)"[\s\S]*?title=""")
url=p_url.findall(page)
url_list.extend(url)
return url_list
url_list=get_url()
len(url_list)
lose_url=[]
for myurl in url_list[2:]:
xiazai(myurl)
print(myurl)
from selenium import webdriver from selenium.webdriver.common.keys import Keys import pandas as pd import requests import re driver=webdriver.Chrome('C:/Users/Administrator/Desktop/chromedriver.exe') def xiazai(myurl): try: driver.get('http://www.88gs.com'+myurl) #获取下载地址 page=driver.page_source p_url=re.compile(r"""<ul class="downlistbox">[\s\S]*?<a href="([\s\S]*?)"><img src=""") url=p_url.findall(page)[0] #进入下载地址 driver.get('http://www.88gs.com'+url) driver.find_element_by_partial_link_text('下载地址').click() now_handle = driver.current_window_handle #获取当前窗口句柄 all_handles = driver.window_handles #获取所有窗口句柄 for handle in all_handles: if handle != now_handle: print (handle) #输出待选择的窗口句柄 driver.switch_to_window(handle) time.sleep(5) #百度网盘下载 driver.find_element_by_partial_link_text('下载').click() time.sleep(5) driver.close() #关闭当前窗口 driver.switch_to_window(now_handle) #返回主窗口 except: pass def get_url(): url_list=[] for i in range(1,132): print(i) url='http://www.88gs.com/soft/sort011/list11_'+str(i)+'.html' #url='http://www.88gs.com/soft/sort011/list11_131.html' driver.get(url) page=driver.page_source p_url=re.compile(r"""mainSoftName"><a href="([\s\S]*?)"[\s\S]*?title=""") url=p_url.findall(page) url_list.extend(url) return url_list url_list=get_url() len(url_list) for myurl in url_list: xiazai(myurl) print(myurl)
相关文章推荐
- Python写自动化之http文件下载
- Python 电子书下载列表
- Python 实现的下载op海贼王网的图片(网络爬虫)
- Python 网络爬虫-下载图片
- Python 网络爬虫 004 (编程) 如何编写一个网络爬虫,来下载(或叫:爬取)一个站点里的所有网页
- 学习Python 免费电子书 TOP10(含下载)
- python selenium下载电子书
- Python 网络爬虫 004 (编程) 如何编写一个网络爬虫,来下载(或叫:爬取)一个站点里的所有网页
- 黄聪:Python语言编程学习资料(电子书+视频教程)下载汇总
- Python网络爬虫实战案例之:7000本电子书下载(2)
- 史上最全的Python电子书教程资源下载(转)
- Python自动化(二)使用Beautifu Soup爬取电影下载链接
- Python 2: 第一个网络爬虫:下载网页
- Python语言编程学习资料(电子书+视频教程)下载汇总
- 最经典的25本Python编程开发电子书(附下载地址)!
- python 网络爬虫(三) 多线程,gzip加速,网页下载
- 学习Python 免费电子书 TOP10(含下载)
- Python语言编程学习资料(电子书+视频教程)下载汇总
- 学习Python 免费电子书 TOP10(含下载)