注意:如果想爬取详情页的信息请按须添加方法

import requests
import os
import re
import threading
from lxml import etree
#爬去详情页得HTML内容
class CnBeta(object):
def get_congtent(self,url):
#获取网页首页HTML信息
r = requests.get(url)
#将获取得HTML页面进行解码
html = r.content.decode('utf-8')
#返回值
return html
def xpath_html(self,html):
html = etree.HTML(html)
#利用xpath进行解析HTML模板
new_url = html.xpath("//dt/a/@href")
 
#定义容器把获取到得所有详情页url添加到容器
url_list = []
#定义容器把截取后得文件名字添加到名字容器
name_list = []
#遍历url列表容器
for i in new_url:
#由于获取到得url不同 利用判断进行手动更改
if "http:" not in i:
h = "http:" + i + ".htm"
url_list.append(h)
else:
url_list.append(i)
#对获取到得url进行链式切片获取想要得字段 用来命名文件名字
file_name = i.split('/')[-1].split('.')[0]
#把获取到的文件名字添加到名字容器
name_list.append(file_name)
#返回两个值
return url_list,name_list
 
#定义方法获取详情页URL
def load_html(self,url,name):
#获取详情页HTML信息
r = requests.get(url)
#对详情页HTML信息进行解码
html = r.content.decode("utf-8")
#把相应得HTML信息写入指定文件夹 并把动态传过来得文件名字直接写入并加入指定文件后缀
with open('E:/新建文件夹/'+name+".html",'w',encoding="utf-8") as f:
f.write(html)
if __name__ == "__main__":
#实例化对象
cndeta = CnBeta()
#调用方法并传入首页URL
html = cndeta.get_congtent('https://www.cnbeta.com/')
#定义两个变量分别接收方法传过来的两个参数
url,name = cndeta.xpath_html(html)
#循环遍历url的个数 定义线程执行的个数 在这里直接执行len(url)个线程
for i in range(len(url)):
#定义多线程爬去 target指定方法 args指定相应的url和文件名字
s = threading.Thread(target=cndeta.load_html,args=(url[i],name[i]))
#守护线程
s.setDaemon(True)
#执行线程
s.start()
#阻塞主线程
s.join()

多线程爬虫爬取详情页HTML的更多相关文章

  1. Python多线程爬虫爬取电影天堂资源

    最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...

  2. scrapy爬取网址,进而爬取详情页问题

    1.最容易出现的问题是爬取到的url大多为相对路径,如果直接将爬取到的url进行二次爬取就会出现以下报错: raise ValueError('Missing scheme in request ur ...

  3. Python多线程爬虫爬取网页图片

    临近期末考试,但是根本不想复习!啊啊啊啊啊啊啊!!!! 于是做了一个爬虫,网址为 https://yande.re,网页图片为动漫美图(图片带点颜色........宅男福利 github项目地址为:h ...

  4. 一个简单的定向python爬虫爬取指定页面的jpg图片

    import requests as r import re resul=r.get("http://www.imooc.com/course/list") urlinfo=re. ...

  5. python爬虫—爬取英文名以及正则表达式的介绍

    python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一.  爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个cs ...

  6. 爬虫(GET)——爬取多页的html

    工具:python3 目标:将编写的代码封装,不同函数完成不同功能,爬取任意页数的html 新学语法:with open as 除了有更优雅的语法,with还可以很好的处理上下文环境产生的异常. # ...

  7. (java)Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页

    Jsoup爬虫学习--获取智联招聘(老网站)的全国java职位信息,爬取10页,输出 职位名称*****公司名称*****职位月薪*****工作地点*****发布日期 import java.io.I ...

  8. python爬虫系列之爬取多页gif图像

                   python爬取多页gif图像 作者:vpoet mail:vpoet_sir@163.com #coding:utf-8 import urllib import ur ...

  9. 使用Python爬虫爬取网络美女图片

    代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...

随机推荐

  1. 浅析 JavaScript 中的 Function.prototype.bind() 方法

    Function.prototype.bind()方法 bind() 方法的主要作用就是将函数绑定至某个对象,bind() 方法会创建一个函数,函数体内this对象的值会被绑定到传入bind() 函数 ...

  2. cf932E. Team Work(第二类斯特灵数 组合数)

    题意 题目链接 Sol 这篇题解写的非常详细 首先要知道第二类斯特灵数的一个性质 \[m^n = \sum_{i = 0}^m C_{n}^i S(n, i) i!\] 证明可以考虑组合意义:\(m^ ...

  3. 关于苹果延迟了App接入HTTPS服务截止日期

    可参考 http://www.cocoachina.com/apple/20161223/18431.html https://developer.apple.com/news/?id=1221201 ...

  4. loadrunner 脚本录制-Protocol Advisor协议分析器的使用

    脚本录制-Protocol Advisor协议分析器的使用 by:授客 QQ:1033553122 1.启动Protocol Advisor File > Protocol Advisor &g ...

  5. IE打开https网站时,取消证书问题提示

    上面介绍了,调用IE来打开对应的网页问题,但是在实际测试中,有些网站是采用https协议的,这时候IE浏览器会弹出如下窗口,一般手动选择后,才可进入登录界面,那么该如何解决呢? 1.点击[继续浏览此网 ...

  6. Glide开源库的使用

    关于Glide Glide是一款快速高效的Android图像加载库,注重于平滑的滚动.Glide提供了易用的API,高性能.可扩展的图片解码管道(decode pipeline),以及自动的资源池技术 ...

  7. scala模式匹配详细解析

    一.scala模式匹配(pattern matching) pattern matching可以说是scala中十分强大的一个语言特性,当然这不是scala独有的,但这不妨碍它成为scala的语言的一 ...

  8. 智能POS删除文件和数据库操作步骤

    1. 2. 3. 4.winbox:日志:winboxcash:数据库:winboxcyb:其他文件: 5.删除以上三个文件夹

  9. C和C++头文件大全

    C.传统 C++ #include <assert.h> //设定插入点#include <ctype.h>  //字符处理#include <errno.h>   ...

  10. Oracle数据库忘记用户名密码的解决方案

    1.windows+r输入sqlplus 2.依次输入: sys/manager as sysdba #创建新用户 SQL> create user c##username(自己的用户名) id ...