爬取站点 https://it.ithome.com/ityejie/ ,进入详情页提取内容。

import requests
import json
from lxml import etree
from pymongo import MongoClient
'''
遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!
'''
url = 'https://it.ithome.com/ithome/getajaxdata.aspx'
headers = {'authority': 'it.ithome.com','method': 'POST','path': '/ithome/getajaxdata.aspx','scheme': 'https','accept': 'text/html, */*; q=0.01','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','content-length': '40','content-type': 'application/x-www-form-urlencoded; charset=UTF-8','cookie': 'BAIDU_SSP_lcr=https://www.hao123.com/link/https/?key=http%3A%2F%2Fwww.ithome.com%2F&&monkey=m-kuzhan-group1&c=B329C2F33C91DEACCFAEB1680305F198; Hm_lvt_f2d5cbe611513efcf95b7f62b934c619=1530106766; ASP.NET_SessionId=tyxenfioljanx4xwsvz3s4t4; Hm_lvt_cfebe79b2c367c4b89b285f412bf9867=1530106547,1530115669; BEC=228f7aa5e3abfee5d059195ad34b4137|1530117889|1530109082; Hm_lpvt_f2d5cbe611513efcf95b7f62b934c619=1530273209; Hm_lpvt_cfebe79b2c367c4b89b285f412bf9867=1530273261','origin': 'https://it.ithome.com','referer': 'https://it.ithome.com/ityejie/','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3472.3 Safari/537.36','x-requested-with': 'XMLHttpRequest'
}client = MongoClient()
db = client['ithome']
collection = db['ithome']
max_page = 1000def get_page(page):  formData = {'categoryid': '31','type': 'pccategorypage','page': page,}try:r = requests.post(url, data=formData, headers=headers)if r.status_code == 200:#print(type(r))html = r.text# 响应返回的是字符串,解析为HTML DOM模式 text = etree.HTML(html)text = etree.HTML(html)link_list = text.xpath('//h2/a/@href') print("提取第"+str(page)+"页文章")id=0for link in link_list:id+=1print("解析第"+str(page)+"页第"+str(id)+"篇文章")print("链接为:"+link)loadpage(link)except requests.ConnectionError as e:print('Error', e.args)    # 取出每个文章的链接
def loadpage(link):headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3472.3 Safari/537.36'}try:reseponse = requests.get(link, headers = headers)if reseponse.status_code == 200:     html = reseponse.text# 解析node = etree.HTML(html)ithome ={}# 取出每个标题,正文等# xpath返回的列表,这个列表就这一个参数,用索引方式取出来,标题ithome['title'] = node.xpath('//*[@id="wrapper"]/div[1]/div[2]/h1')[0].text# 时间ithome['data'] = node.xpath('//*[@id="pubtime_baidu"]')[0].text# 取出标签下的内容#content = node.xpath('//*[@id="paragraph"]/p/text()')ithome['content'] = "".join(node.xpath('//*[@id="paragraph"]/p/text()')).strip()#content = node.xpath('//*[@id="paragraph"]/p')[1].text# 取出标签里包含的内容,作者ithome['author'] = node.xpath('//*[@id="author_baidu"]/strong')[0].text# 评论数ithome['commentcount'] = node.xpath('//span[@id="commentcount"]')[0].text#评论数没有取到write_to_file(ithome)save_to_mongo(ithome)             except requests.ConnectionError as e:print('Error', e.args)  def write_to_file(content):with open('ithome.json','a',encoding='utf-8') as f:f.write(json.dumps(content,ensure_ascii=False)+'\n')f.close()def save_to_mongo(result):if collection.insert(result):print('Saved to Mongo')if __name__ == '__main__':for page in range(1, max_page + 1):get_page(page)

python爬取IT之家业界新闻相关推荐

  1. 爬取IT之家业界新闻

    爬取站点  https://it.ithome.com/ityejie/ ,进入详情页提取内容. 1 import requests 2 import json 3 from lxml import ...

  2. PYTHON爬取汽车之家数据

    PYTHON爬取汽车之家数据 使用知识 使用BeautifulSoup模块 使用正则表达式 使用到多线程爬取 使用说明 使用前请安装BeauifulSoup 起始页面: https://www.aut ...

  3. python爬取BT之家特定频道前5页电影信息(小白操作)

    python爬取BT之家特定频道前5页电影信息(小白操作) 想要爬的网页如下,希望得到BT之家恐怖频道的电影信息,并存档xls 代码如下 import requests,openpyxl wb=ope ...

  4. python爬取汽车之家_python爬虫实战之爬取汽车之家网站上的图片

    随着生活水平的提高和快节奏生活的发展.汽车开始慢慢成为人们的必需品,浏览各种汽车网站便成为购买合适.喜欢车辆的前提.例如汽车之家网站中就有最新的报价和图片以及汽车的相关内容,是提供信息最快最全的中国汽 ...

  5. 用Python爬取2020链家杭州二手房数据

    起源于数据挖掘课程设计的需求,参考着17年这位老兄写的代码:https://blog.csdn.net/sinat_36772813/article/details/73497956?utm_medi ...

  6. Python 爬取百度 搜索风云榜 新闻并 自动推送 到邮箱

    本文将使用Python爬取百度新闻搜索指数排名前50的新闻,并通过服务器运行,每天定时发送到指定邮箱. 先上代码: # -*- coding:utf-8 -*- import requests,os, ...

  7. Python爬取汽车之家所有车型数据,以后买车就用这个参考了

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.大航海计划.BAT内推.学习资料等. 前言 2018年马上就要过去了,经过一年的奋斗,我相 ...

  8. java爬虫入门--用jsoup爬取汽车之家的新闻

    概述 使用jsoup来进行网页数据爬取.jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuer ...

  9. Python爬取CAP之家的APP推广信息数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

最新文章

  1. [转]苹果iOS 5限制应用本地存储问题
  2. 如何在Oracle中复制表结构和表数据
  3. draw.io二次开发(1)三种运行模式的区别
  4. python循环五角星做法_python实现while循环打印星星的四种形状
  5. 设计模式之_Iterator_05
  6. HTML+CSS+JS实现 ❤️从亮到暗图片滤镜特效❤️
  7. 「Mac新手必备」解决 Mac 无法启动、开机的问题
  8. 高二会考计算机应用试题,高中信息技术会考25套操作题整理.doc
  9. Flink中水位线/Periodic周期水印/Punctuated每个事件水印实现原理/ PunctuatedWatermarks/PeriodicWatermarks
  10. word文件在线转换成pdf
  11. 篮球图片html页面代码,教你用PS制作一个非常逼真的篮球图片
  12. 计算机程序 申请专利,计算机程序能申请专利吗
  13. 强化学习基础(第一周)笔记和代码(RL-cousera)
  14. 【通信协议】一文搞懂SPI
  15. 区块链的大问题有救了!
  16. 【基础练习】【DFS】codevs2806 红与黑题解
  17. c语言中pair的头文件,C++中使用pair是否一定要包含头文件utility
  18. android在体检报告叫什么,体检报告助手app下载-体检报告助手v3.1.5 安卓版-腾牛安卓网...
  19. 软件测试-七项测试的基本原则
  20. Verilog快速入门(13)—— 用3-8译码器实现全减器

热门文章

  1. 2021-01-23
  2. oracle视图能否编辑数据,视图可以修改数据吗?
  3. Remux是什么及为什么选择Remux
  4. 网吧会员消费管理(ASP.NET,SQLServer)
  5. 低压铸造水模拟计算机控制系统,低压铸造中充型过程水模拟的研究.doc
  6. java avg_JPA 查询AVG简单示例
  7. php旅行社erp,旅行社SaaS系统,相比传统ERP软件还有哪些优势?
  8. Open3d学习计划——6(RGBD图像)
  9. java宝石迷阵代码_Android处理java的date数据的问题
  10. table表格td中英文数字超出单元格自动换行