抓取 https://www.cnbeta.com/ 首页中新闻内容页网址,

抓取内容例子: https://hot.cnbeta.com/articles/game/825125

将抓取下来的内容页地址组成list,利用多线程,把所有内容页的内容写入文件,文件名以新闻id命名  以上一篇为例子就是  825125.html。

☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·..·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·☆.·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·..·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·☆.·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·..·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·☆.·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·..·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·☆.·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·..·˙˙`·..·☆`·.·˙˙`·..·˙˙`·..·˙☆`·.·˙˙`·..·˙☆`·.·˙˙`·

很久没有用到线程,看到这题的时候脑袋炸了(稳住不慌!)慌得一笔啊哈哈哈啊哈哈

import requests,time,os
from lxml import etree
import re
import threading #定义请求类
class News(object):
# # # #定义抓取方法
def get_content(self,url):
r = requests.get(url)
html = r.content.decode("utf-8")
# with open('./news.html','w',encoding='utf-8') as f:
# f.write(html)
return html #定义数据匹配方法
def get_data(self,html):
#转换格式
res = etree.HTML(html)
detailurl = res.xpath("//div[@class='item']/dl/a/@href")
# print(detailurl)
urllist = []
for i in detailurl:
a = re.compile(r'^h[\w.:/]*')
res = re.match(a,i)
if res:
urllist.append(i)
# print(urllist)
urllistname=[]
for i in urllist:
name = i[-10:-4:1]
urllistname.append(name)
# print(urllistname)
return urllistname,urllist def write_data(self,a,b):
print(a,b)
res = self.get_content(b)
with open("./text/"+a+'.html','w',encoding='utf-8') as e:
e.write(res) if __name__ == '__main__':
news = News()
html = news.get_content("https://www.cnbeta.com/")
urllistname,urllist = news.get_data(html)
# print(urllist)
for i in range(len(urllist)):
write = threading.Thread(target=news.write_data,args=(urllistname[i],urllist[i]))
write.setDaemon(True)
write.start()
write.join() print('ok')

效果:点进去就是一个下载后的详情页。

sumafan:python爬虫多线程爬取数据小练习(附答案)的更多相关文章

  1. Python爬虫:爬取美拍小姐姐视频

    最近在写一个应用,需要收集微博上一些热门的视频,像这些小视频一般都来自秒拍,微拍,美拍和新浪视频,而且没有下载的选项,所以只能动脑想想办法了. 第一步 分析网页源码. 例如:http://video. ...

  2. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  3. 如何手动写一个Python脚本自动爬取Bilibili小视频

    如何手动写一个Python脚本自动爬取Bilibili小视频 国庆结束之余,某个不务正业的码农不好好干活,在B站瞎逛着,毕竟国庆嘛,还让不让人休息了诶-- 我身边的很多小伙伴们在朋友圈里面晒着出去游玩 ...

  4. python爬虫实战---爬取大众点评评论

    python爬虫实战—爬取大众点评评论(加密字体) 1.首先打开一个店铺找到评论 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经 ...

  5. Python爬虫之爬取慕课网课程评分

    BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...

  6. from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...

  7. Python爬虫之爬取淘女郎照片示例详解

    这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...

  8. Python爬虫之爬取站内所有图片

    title date tags layut Python爬虫之爬取站内所有图片 2018-10-07 Python post 目标是 http://www.5442.com/meinv/ 如需在非li ...

  9. python爬虫项目-爬取雪球网金融数据(关注、持续更新)

    (一)python金融数据爬虫项目 爬取目标:雪球网(起始url:https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_ ...

随机推荐

  1. 修复./mysql/proc

    mysql数据库只能建不能删的错误提示及处理方法: mysql> drop database zabbixaa; ERROR 145 (HY000): Table ‘./mysql/proc‘ ...

  2. [NIO-4]选择器

    选择器 最后,我们探索一下选择器.由于选择器内容比较多,所以本篇先偏理论地讲一下,后一篇讲代码,文章也没有什么概括.总结的,写到哪儿算哪儿了,只求能将选择器写明白,并且将一些相对重要的内容加粗标红. ...

  3. 5句话搞定ES5作用域

    JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走遍天下都不怕... 一.“JavaScript中无块级作用域” 在Java或C# ...

  4. bzoj千题计划324:bzoj5249: [2018多省省队联测]IIIDX(线段树)

    https://www.lydsy.com/JudgeOnline/problem.php?id=5249 把树建出来 如果所有的d互不相同,后续遍历即可 现在有的d相同 将d从小到大排序,考虑如何将 ...

  5. bzoj千题计划322:bzoj2561: 最小生成树(最小割)

    https://www.lydsy.com/JudgeOnline/problem.php?id=2561 考虑Kruscal算法求最小生成树的流程 如果 u和v之间的长为L的边能出现在最小生成树里, ...

  6. css的几个小技巧

    本文收录css设置样式的一些小技巧 1. 设置文字在块级标签居中(包括水平居中和垂直居中) 水平居中 方法一:使用text-align text-align:center 方法二:目标标签的父级标签设 ...

  7. python练习实例2--------构造数据类型

    有如下数据类型 cars = ['鲁A32444', '鲁B12333', '京B8989M', '黑C49678', '黑C46555', '沪B25041', '黑C34567'] locatio ...

  8. SQL Server进阶(六)表表达式--派生表、公用表表达式(CTE)、视图和内联表值函数

    概述 表表达式是一种命名的查询表达式,代表一个有效地关系表.可以像其他表一样,在数据处理中使用表表达式. SQL Server支持四种类型的表表达式:派生表,公用表表达式,视图和内联表值函数. 为什么 ...

  9. spring cloud(学习笔记)微服务启动错误(1)

    今天下午在启动spring cloud微服务的时候,报了这个错误: Error starting ApplicationContext. To display the auto-configurati ...

  10. Spring+thymeleaf

    1.导入jar包 2.配置 3.标签使用 th:text th:utext th:object th:if th:switch th:case th:each="person:userlis ...