从百度新闻爬取关键词搜索的页面

原创 2016年08月30日 06:15:56
#coding=utf-8
from pyquery import PyQuery as pq
import requests
import codecs
import json
import MySQLdb
import sys
import time
reload(sys)
sys.setdefaultencoding('utf-8')
s=requests.Session()
s.headers.update({'referer': "http://news.baidu.com"})
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='lbldks03200028',db='baidu',port=3306)
    conn.set_character_set('utf8')
    cur=conn.cursor()
    cur.execute("SET NAMES 'utf8'")
    # cur.execute("drop table records")
    cur.execute("create table records(id int not null auto_increment primary key, title varchar(1023), time varchar(1023), url varchar(1023))")
    # cur.close()
    # conn.close()
except MySQLdb.Error, e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])
     exit(0)

# f=codecs.open('/home/allen/projects/sjtu_news/data.csv','w','utf-8')
def indexPage(url,headers):
    r_page=s.get(url, headers=headers)
    page0=pq(r_page.text)
    num=len(page0('.norsSuggest'))
    while num!=0:
        print "sleep for 20s, zzZZ"
        time.sleep(20)
        r_page=s.get(url, headers=headers)
        page0=pq(r_page.text)
        num=len(page0('.norsSuggest'))
    r_page.encoding = 'utf-8'
    page=pq(r_page.text)
    items=page(".result.title")
    for i in range(20):
        item=items.eq(i)
        url=item('h3>a').attr('href')
        url=url.replace("'", "''")
        title=item('h3>a').text()
        title=title.replace("'", "''")
        time=item('.c-title-author').text()
        if time[-2:]==">>":
            time=time[:time.rindex(' ')]
        time=time[-17 : ]
        time=time.replace("'", "''").replace('年', '-').replace('月', '-').replace('日', '')
        sql="insert into records(title, time, url) values('%s', '%s', '%s')" %(title, time, url)
        try:
            cur.execute(sql)
            conn.commit()
        except Exception, e:
            print(e)

        # print url
        # print title
        # print time


headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17"}

for n in range(200,501,20):
    print "n=", n
    url='http://news.baidu.com/ns?word=title%3A%28%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6%29&pn='+str(n)+'&cl=2&ct=0&tn=newstitle&rn=20&ie=utf-8&bt=0&et=0'
    indexPage(url,headers)
    time.sleep(10)
cur.close()
conn.close()

The following code script deal with requests’s failure for a new page.

r_page=s.get(url, headers=headers)
    page0=pq(r_page.text)
    num=len(page0('.norsSuggest'))
    while num!=0:
        print "sleep for 20s, zzZZ"
        time.sleep(20)
        r_page=s.get(url, headers=headers)
        page0=pq(r_page.text)
        num=len(page0('.norsSuggest'))
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java网络爬虫爬取百度新闻

采用commons-httpclientcommons-httpclient是一个遗留版本,现在官方已经不推荐使用了。lucene采用4.3版本所需jar包650) this.width=650;" ...
  • jethai
  • jethai
  • 2016年08月28日 14:10
  • 1650

python爬虫(抓取百度新闻列表)

一、python请求要抓取的url页面 要抓取的url http://news.baidu.com/ ,先python模拟请求该url#!/usr/bin/python # -*- coding:u...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

python爬虫——根据指定关键词爬取新浪微博

preface:最近因为任务的关系,需要各种爬虫,根据指定人物爬百度百科、指定电影电视剧爬豆瓣影评、指定餐馆爬大众点评评论等等,这些都挺简单的,不过就是各种情况的分析麻烦。像是爬取人物百科,有的人物具...

使用网页爬虫(高级搜索功能)搜集含关键词新浪微博数据

作为国内社交媒体的领航者,很遗憾,新浪微博没有提供以“关键字+时间+区域”方式获取的官方API。当我们看到国外科研成果都是基于某关键字获得的微博,心中不免凉了一大截,或者转战推特。再次建议微博能更开放...
  • era_misa
  • era_misa
  • 2014年07月26日 21:16
  • 12865

python3爬虫-爬取新浪新闻首页所有新闻标题

准备工作:安装requests和BeautifulSoup4。打开cmd,输入如下命令pip install requests pip install BeautifulSoup4打开我们要爬取的页面...

Python爬取百度新闻数据并将时间统计到EXCEL中

缘起我的好朋友的毕业论文需要爬取基金经理的新闻数量,并且统计新闻数量与基金的成交率的关系,我当然义不容辞啦。 任务描述:爬取三百位基金经理“百度新闻”中的搜索结果,并且将其分别按月和按季度统计新闻数...
  • mr_phy
  • mr_phy
  • 2017年02月26日 20:30
  • 523

WebCollector爬取百度搜索引擎例子

使用WebCollector来爬取百度搜索引擎按照关键字搜索的结果页面,解析规则可能会随百度搜索的改版而失效。 代码如下: package com.wjd.baidukey.crawler; imp...

【Python】爬虫爬取各大网站新闻(一)

作者博客地址:http://andyheart.mePython爬虫一步一步爬取文章背景最近在学习机器学习算法,分为回归,分类,聚类等,在学习过程中苦于没有数据做练习,就想爬取一下国内各大网站的新闻,...

装了个个人感觉最好的文本编辑器Sublime Text 3.实时记录。

Sublime Text  3在win8.1中的效果: 这是我在sublime中编写android的效果,不错吧,感觉很帅气,当然不光是帅气。功能很强大。 Sublime简介: Sublime T...
  • zppzhw
  • zppzhw
  • 2013年07月26日 17:23
  • 1346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从百度新闻爬取关键词搜索的页面
举报原因:
原因补充:

(最多只允许输入30个字)