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

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. CSS字体样式属性

    font-size 字号大小 一般推荐使用相对长度(px ,em),不推荐使用绝对长度(in,cmm,mm,pt) font-family 字体 1.可以同时指定多个字体,中间用英文状态的逗号隔开,英 ...

  2. webstorm编辑器相关

    1.怎么去掉webstorm中间那条线? 如图: 2.webstorm 常见快捷键 1.代码导航和用法查询:只需要按着Ctrl键点击函数或者变量等,就能直接跳转到定义:可以全项目查找函数或者变量,还可 ...

  3. Ubuntu、deepin 安装 mysql

    在 Ubuntu 和 deepin 安装 mysql 是很简单的,只需要几条简单的命令即可   1. sudo apt-get install mysql-server 2. sudo apt-get ...

  4. 第二篇 Html(13章节)-a标签,img标签,列表,表格

    1. a标签 - 超链接,可以跳转 - 锚  href='#某个标签的ID'    标签的ID不允许重复 <!DOCTYPE html> <html lang="en&qu ...

  5. robot framework笔记(一):环境配置(基于python3)+在pycharm中编写及运行robot脚本

    (一)使用pip安装robotframework框架和seleniumlibrary库 pip install --upgrade robotframework pip install --upgra ...

  6. Spark数据倾斜及解决方案

    一.场景 1.绝大多数task执行得都非常快,但个别task执行极慢.比如,总共有100个task,97个task都在1s之内执行完了,但是剩余的task却要一两分钟.这种情况很常见. 2.原本能够正 ...

  7. 洗礼灵魂,修炼python(80)--全栈项目实战篇(8)—— 计算器

    用正则表达式开发一个计算器,计算用户给定的一串带有加减乘除的公式. 要求:不能使用eval转换字符串 分析: 要求简单,就是计算混合运算,但是不能使用eval直接转换,主要就是把整个式子中的小括号优先 ...

  8. MySQL【Delete误操作】数据恢复【转】

    前言:      操作数据库时候难免会因为“大意”而误操作,需要快速恢复的话通过备份来恢复是不太可能的,因为需要还原和binlog差来恢复,等不了,很费时.这里先说明下因为Delete 操作的恢复方法 ...

  9. Android内嵌PDF预览

    一.在对应模块的build.gradle文件中加入依赖 dependencies { implementation 'com.github.barteksc:android-pdf-viewer:3. ...

  10. nmap参数原理抓包分析

    nmap参数原理抓包分析 实验环境: Nmap7.70 实验步骤: 1.主机发现 2.端口扫描 3.服务版本探测 一.主机发现 主机发现,如果主机活跃,扫描1000个常用的tcp端口 1.Nmap i ...