Python 爬虫实例(4)—— 爬取网易新闻
自己闲来无聊,就爬取了网易信息,重点是分析网页,使用抓包工具详细的分析网页的每个链接,数据存储在sqllite中,这里只是简单的解析了新闻页面的文字信息,并未对图片信息进行解析
仅供参考,不足之处请指正
# coding:utf-8 import random, re
import sqlite3
import json
from bs4 import BeautifulSoup import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import uuid import requests session = requests.session()
def md5(str):
import hashlib
m = hashlib.md5()
m.update(str)
return m.hexdigest() def wangyi(): for i in range(1,3):
if i ==1:
k = ""
else:
k = "_0" + str(i)
url = "http://temp.163.com/special/00804KVA/cm_yaowen" + k + ".js?callback=data_callback"
print url
headers = { "Host":"temp.163.com",
"Connection":"keep-alive",
"Accept":"*/*",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 LBBROWSER",
"Referer":"http://news.163.com/",
"Accept-Encoding":"gzip, deflate, sdch",
"Accept-Language":"zh-CN,zh;q=0.8", }
result = session.get(url=url,headers=headers).text
try:
result1 = eval(eval((json.dumps(result)).replace('data_callback(','').replace(')','').replace(' ','')))
except:
pass
try:
for i in result1:
tlink = i['tlink']
headers2 = { "Host":"news.163.com",
"Connection":"keep-alive",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Upgrade-Insecure-Requests":"",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 LBBROWSER",
"Accept-Encoding":"gzip, deflate, sdch",
"Accept-Language":"zh-CN,zh;q=0.8", }
print "tlinktlinktlinktlink",tlink
return_data = session.get(url=tlink,headers=headers2).text
try: soup = BeautifulSoup(return_data, 'html.parser')
returnSoup = soup.find_all("div", attrs={"id": "endText"})[0]
print returnSoup
print "==============================="
try:
returnList = re.findall('<p>(.*?)</p>',str(returnSoup))
content1 = '<-->'.join(returnList)
except:
content1 ="" try:
returnList1 = re.findall('<p class="f_center">(.*?)</p>',str(returnSoup))
content2 = '<-->'.join(returnList1)
except:
content2 ="" content = content1 +content2 except:
content = "" cx = sqlite3.connect("C:\\Users\\xuchunlin\\PycharmProjects\\study\\db.sqlite3", check_same_thread=False)
cx.text_factory = str try:
print "正在插入链接 %s 数据" % (url) tlink = i['tlink']
title = (i['title']).decode('unicode_escape')
commenturl = i['commenturl']
tienum = i['tienum']
opentime = i['time'] print title
print tlink
print commenturl
print tienum
print opentime
print content url2 = md5(str(tlink)) cx.execute("INSERT INTO wangyi (title,tlink,commenturl,tienum,opentime,content,url)VALUES (?,?,?,?,?,?,?)",(str(title), str(tlink), str(commenturl), str(tienum), str(opentime), str(content), str(url2))) except Exception as e:
print e
print "cha ru shi bai "
cx.commit()
cx.close()
except:
pass wangyi()
Python 爬虫实例(4)—— 爬取网易新闻的更多相关文章
- Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取
很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...
- Python爬虫实例:爬取猫眼电影——破解字体反爬
字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- Python爬虫实战教程:爬取网易新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Amauri PS:如有需要Python学习资料的小伙伴可以加点击 ...
- Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. stars声明很多小伙伴学习Python过程中会遇到各种烦恼问题解决不了.为 ...
- 如何利用python爬取网易新闻
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...
- Python爬虫教程-17-ajax爬取实例(豆瓣电影)
Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- python爬虫-基础入门-爬取整个网站《3》
python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...
- python爬虫-基础入门-爬取整个网站《2》
python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...
随机推荐
- java 日期工具类
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- Spring Data JPA -1-CRUD入门
1) 引入jar包支持 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...
- vim多行注释与取消
神操作 在vim中编写代码,常常会遇到多行注释和取消注释的情况,在VS中我们可以用默认的快捷键或者在设置中自定义快捷键来解决这个问题. vim既然这么强大,必然也是有快捷键来完成的.下面给出具体步骤: ...
- 显示所有环境变量:env 或者 printenv
显示所有环境变量:env 或者 printenv
- 使用HttpClient发送请求接收响应
1.一般需要如下几步:(1) 创建HttpClient对象.(2)创建请求方法的实例,并指定请求URL.如果需要发送GET请求,创建HttpGet对象:如果需要发送POST请求,创建HttpPost对 ...
- vs开发工具报错:参数错误 异常来自 HRESULT:0x80070057 E_INVALIDARG
解决方法: 4.0 删除 c:\windows\microsoft.net\framework\v4.0.30319\temporary asp.net files 2..0 删除 c:\window ...
- delegate和event的区别 (zz)
一. delegate C#代理实际上类似于C++中的函数指针,因为C#中不存在指针,所以用代理可以完成一些原来在C++中用函数指针完成的操作,例如传递一个类A的方法m给另一个类B的对象,使得类B的对 ...
- 从HttpServletRequest获取完整的请求路径
String url = request.getRequestURI(); // 这个方法只能获得不包含参数的请求url,且只包含相对路径 StringBuffer url_buffer = requ ...
- Chrome插件-把网页图片上传到七牛空间一
功能:图片上右键,点击上传图片到七牛,把图片上传的指定空间并返回图片URL. Chrome插件本质就是js代码,但是里面有一些限制,比如事件绑定等和普通js的绑定是有区别的,主要是为了安全性考虑. 做 ...
- STL - 常用顺序容器代码
不多说,看代码 #include <iostream> #include <vector> #include <deque> #include <list&g ...