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 爬一些数据出来,做个参考 主要思路:通过查找,基本思路清晰,目标明确,仅仅爬取美团莫一地区的酒店信息,不过 ...
随机推荐
- redis的一些常见面试题
1 .在项目中缓存是如何使用的? 2.为啥在项目里要用缓存呢? 用缓存,主要用途,高性能和高并发 高性能: 场景举例:假如有这么一个操作,用户发起请求,操作数据库,查出结果,耗时600ms,然后这个结 ...
- centos7查看启动的进程并杀死
https://www.cnblogs.com/aipiaoborensheng/p/7676364.html ps -a -H kill -9 pid
- (node:7584) UnhandledPromiseRejectionWarning: MongooseTimeoutError: Server selection timed out after 30000 ms
记录一次学习node.js犯的低级错误 这里遇到一个这样的问题 express连接mongoose时报错(node:7584) UnhandledPromiseRejectionWarning: Mo ...
- django 搭建一个投票类网站(四)
昨天我把投票页面终于写完,怎么说呢,觉得这本书对我的帮助也不是很大,然后去看了下django的文档,发现竟然是同一个项目...... 但还是要善始善终吧,贴一下中文版的文档https://docs.d ...
- 小白的java学习之路 “ 选择结构(二)”
switch 选择结构: 为什么使用switch选择结构: switch选择结构可以更好地解决等值判断问题. switch选择结构的四个关键字: switch case default ...
- Java细节1--输入关闭
import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner sc= ...
- HDU5608
题意 英文 做法 设\(g(n)=n^2-3n+2\),有\(g(n)=\sum\limits_{d|n}f(d)\),反演一下有\(f(n)=\sum\limits_{d|n}\mu(\frac{n ...
- Beamer加入背景图片
在Beamer中加入背景图片只要把背景重新设置一下: \setbeamertemplate{background}{\includegraphics[height=\paperheight]{bg}} ...
- spark-sklearn TypeError: 'JavaPackage' object is not callable
from sklearn import svm, datasets from spark_sklearn import GridSearchCV from pyspark import SparkCo ...
- 浅识mysql主键
primary key:主键,又叫主键约束. primary key在表中是唯一代表一条记录的.primary key可以是1列,或者多列组合而成的. 如何查看一个表的主键是什么,举个例子: desc ...