Python爬取ithome的一所有新闻标题评论数及其他一些信息并存入Excel中。
# coding=utf-8
import numpy as np
import pandas as pd
import sys from selenium import webdriver
import time
import requests
import re
from openpyxl.workbook import Workbook
import matplotlib.pyplot as plt
import matplotlib urls = []
urls_new = []
titles = []
titles_new = []
days = []
comments = []
authors = []
sources = []
comment = []
ty = []
def save_to_file(file_name, contents):
fh = open(file_name, 'w')
fh.write(contents)
fh.close() url="https://www.ithome.com/"
# headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36'
# '(KHTML,like Gecko) Chrome/50.0.2661.102 Safari/537.36 QIHU 360EE'}
headers={'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0"}
rep = requests.get(url,headers=headers)
rep.encoding="utf-8"
strw=rep.text
save_to_file('ithome.html', strw)
p = re.compile(r'<div class="lst lst-1 new-list">(.*?)</div>\s*?</div>')
m = p.findall(strw)
print(len(m[0]))
p = re.compile(r'<div class=\"block \d{4} new-list-\d{1}\"(?: style=\".*?\")?><ul>(.*?)</ul></div>')
m2 = p.findall(m[0])
print(len(m2)) broswer = webdriver.Chrome('D:\谷歌\Google\Chrome\Application\chromedriver.exe') for i in m2:
m2 = re.findall(r'</span><span class=\"title\">.*?href=\"(.*?)\">(?:<.*?>)?(.*?)(?:</font>)?</a></span></li>', i)
for j in m2:
urls.append(j[0])
titles.append(j[1])
print(len(urls))
for i in range(len(urls)):
print(u'读取中' + urls[i])
broswer.get(urls[i])
time.sleep(1)
strw2 = broswer.page_source
# print(strw2)
p2 = re.compile(r'https://\w+?.ithome.com/(?:html/)?(.*?)/.*?')
m2 = p2.findall(urls[i])
print(m2)
p = re.compile(u'<span id="pubtime_baidu">(\d*-\d*-\d*).*?</span><span id="source_baidu">'
u'来源:<a href=".*?" .*?>(.*?)</a></span><span id="author_baidu">'
u'作者:(?:<strong>)?(.*?)(?:</strong>)?</span>.*?<span id="commentcount">(.*?)</span>')
m = p.findall(strw2)
print(m)
if len(m) > 0:
days.append(m[0][0])
sources.append(m[0][1])
authors.append(m[0][2])
urls_new.append(urls[i])
comments.append(m[0][3])
titles_new.append(titles[i])
ty.append(m2[0])
print("读取结束")
data={'日期':days,'作者':authors,'来源':sources,'标题':titles_new,'链接':urls_new,'评论数量':comments,'新闻类型':ty}
df = pd.DataFrame(data, columns=['日期', '作者', '来源','标题','链接','评论数量','新闻类型'])
# print(df)
df.to_excel(r'ShuJuPa.xlsx',sheet_name='数据爬取结果',encoding='gb2312')
Python爬取ithome的一所有新闻标题评论数及其他一些信息并存入Excel中。的更多相关文章
- Python爬取腾讯新闻首页所有新闻及评论
前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫.选用Python的Scrapy框架.这篇文章主要讨论使用Chrome浏览器的开发者工具获取新闻及评论的来源地址. Chrom ...
- Python 爬取 热词并进行分类数据分析-[数据修复]
日期:2020.02.01 博客期:140 星期六 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...
- Python 爬取 热词并进行分类数据分析-[解释修复+热词引用]
日期:2020.02.02 博客期:141 星期日 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...
- Python 爬取所有51VOA网站的Learn a words文本及mp3音频
Python 爬取所有51VOA网站的Learn a words文本及mp3音频 #!/usr/bin/env python # -*- coding: utf-8 -*- #Python 爬取所有5 ...
- python爬取网站数据
开学前接了一个任务,内容是从网上爬取特定属性的数据.正好之前学了python,练练手. 编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲 ...
- python爬取某个网页的图片-如百度贴吧
python爬取某个网页的图片-如百度贴吧 作者:vpoet mail:vpoet_sir@163.com 注:随意copy,不用告诉我 #coding:utf-8 import urllib imp ...
- Python:爬取乌云厂商列表,使用BeautifulSoup解析
在SSS论坛看到有人写的Python爬取乌云厂商,想练一下手,就照着重新写了一遍 原帖:http://bbs.sssie.com/thread-965-1-1.html #coding:utf- im ...
- 使用python爬取MedSci上的期刊信息
使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...
- Python 爬取美团酒店信息
事由:近期和朋友聊天,聊到黄山酒店事情,需要了解一下黄山的酒店情况,然后就想着用python 爬一些数据出来,做个参考 主要思路:通过查找,基本思路清晰,目标明确,仅仅爬取美团莫一地区的酒店信息,不过 ...
随机推荐
- mysql版本报错
IntelliJIdea2019.3打开原项目报mysql版本报错: Error opening zip file or JAR manifest missing : /C:/Users/flycat ...
- NFS部署
yum install nfs-utils -y systemctl restart/enable nfs systemctl status rpcbind vim /etc/exports /dat ...
- STL-优先级队列-priority_queue
头文件是<queue> 操作很简单 #include <iostream> #include <cstdio> #include <queue> usi ...
- Windows玩转Kubernetes系列4-搭建K8S Dashboard
下载官方yaml文件 最新的配置文件v2.0.0-beta8版本recommended.yaml,UI地址 wget https://raw.githubusercontent.com/kuberne ...
- 复习promise---node
promise这个东西,我都不知道见过多少回了!,非常重要,这里在回忆一遍 发现问题 const fs = require('fs') fs.readFile('./data/1.txt', (err ...
- .net 基础汇总(1)
1 转载 String.IsNullOrWhiteSpace和String.IsNullOrEmpty的区别
- ASP.NET Identity登录原理
https://www.cnblogs.com/jesse2013/p/aspnet-identity-claims-based-authentication-and-owin.html 如何实现登录 ...
- SQL Server database – Error 3743
Database mirroring must be removed before you drop SQL Server database – Error 3743 If you try to dr ...
- HW - VCN 介绍
VCN 是个管理摄像机的平台 用来增删改查摄像机,获取摄像机视频流,获取录像 vcn会基于我们的接口做一次开发,作为相机的统一管理入口,获取相机的信息
- H5_0019:JS中定义json结构
"7HKm": function(e, a, d) { "use strict"; Object ...