# 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中。的更多相关文章

  1. Python爬取腾讯新闻首页所有新闻及评论

    前言 这篇博客写的是实现的一个爬取腾讯新闻首页所有的新闻及其所有评论的爬虫.选用Python的Scrapy框架.这篇文章主要讨论使用Chrome浏览器的开发者工具获取新闻及评论的来源地址. Chrom ...

  2. Python 爬取 热词并进行分类数据分析-[数据修复]

    日期:2020.02.01 博客期:140 星期六 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...

  3. Python 爬取 热词并进行分类数据分析-[解释修复+热词引用]

    日期:2020.02.02 博客期:141 星期日 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...

  4. Python 爬取所有51VOA网站的Learn a words文本及mp3音频

    Python 爬取所有51VOA网站的Learn a words文本及mp3音频 #!/usr/bin/env python # -*- coding: utf-8 -*- #Python 爬取所有5 ...

  5. python爬取网站数据

    开学前接了一个任务,内容是从网上爬取特定属性的数据.正好之前学了python,练练手. 编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲 ...

  6. python爬取某个网页的图片-如百度贴吧

    python爬取某个网页的图片-如百度贴吧 作者:vpoet mail:vpoet_sir@163.com 注:随意copy,不用告诉我 #coding:utf-8 import urllib imp ...

  7. Python:爬取乌云厂商列表,使用BeautifulSoup解析

    在SSS论坛看到有人写的Python爬取乌云厂商,想练一下手,就照着重新写了一遍 原帖:http://bbs.sssie.com/thread-965-1-1.html #coding:utf- im ...

  8. 使用python爬取MedSci上的期刊信息

    使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...

  9. Python 爬取美团酒店信息

    事由:近期和朋友聊天,聊到黄山酒店事情,需要了解一下黄山的酒店情况,然后就想着用python 爬一些数据出来,做个参考 主要思路:通过查找,基本思路清晰,目标明确,仅仅爬取美团莫一地区的酒店信息,不过 ...

随机推荐

  1. 解决const char* to char* 的错误

    一般情况下 char* string = "abc"; 编译后会出现标题中的错误. 我们只需要在字符串前加上const_cast<char*>即可,这个作用是丢弃变量的 ...

  2. Windows 使用 TCPing 工具来获取 TCP延迟、端口通顺情况、已禁Ping服务

    https://elifulkerson.com/projects/tcping.php

  3. jQuery笔记(三)jQuery中的事件

    ; padding:0;} body { font-size:13px; line-height:130%; padding:60px;} #panel { width:300px; border:1 ...

  4. codeforces每日一题1-10

    目录: 1.1093D. Beautiful Graph(DFS染色) 2.514C - Watto and Mechanism(Tire) 3.69E.Subsegments(STL) 4.25C. ...

  5. DataGridView只显示数据源中绑定的字段

    场景: 由于环境需要,在获取数据源的时候会获取多于DataGridView中绑定的字段,若不做任何处理,直接将数据源绑定到DataGridView上面,DataGridView就会将数据源中没有绑定的 ...

  6. 使用Windows实现数据绑定

    一.绑定下拉框数据 string sql = "select * from Grade"; SqlDataAdapter sda = new SqlDataAdapter(sql, ...

  7. jQuery---动态创建节点

    动态创建节点 js的方法 var box = document.getElementById("box"); var a = document.createElement(&quo ...

  8. jQuery---美女相册案例

    美女相册案例 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  9. ECMAScript基本语法——⑤运算符 比较运算符

    ><>=<======全等于 比较运算符 Java中只能比类型相同的,JavaScript没有限制比较方式 1.类型相同:直接比较 字符串:安装字典顺序比较.按位逐一比较直到比 ...

  10. HDU2612 Find a way (双广搜)

    Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year ...