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

原创 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'))
版权声明:本文为博主原创文章,未经博主允许不得转载。

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

一、python请求要抓取的url页面 要抓取的url http://news.baidu.com/ ,先python模拟请求该url#!/usr/bin/python # -*- coding:u...
  • lenovo403
  • lenovo403
  • 2016年02月23日 09:54
  • 2385

python如何获取百度搜索结果的真实URL

在公司中需要去抓取一些数据,就遇到了以下这些问题: 想通过爬虫获取百度搜索结果的原始链接。通过Firefox的HttpFox插件,发现在搜索结果的URL是加密过的,例如: http://www.b...
  • junli_chen
  • junli_chen
  • 2016年08月18日 19:02
  • 1580

基于http的Java爬虫爬取百度新闻

  • 2016年05月06日 16:13
  • 14KB
  • 下载

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

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

新浪新闻按关键字抓取实例

新浪新闻按关键字抓取新闻实例
  • pandana
  • pandana
  • 2014年10月10日 16:50
  • 1336

WebCollector爬取百度搜索引擎例子

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

PHP抓取百度搜索结果页面的【相关搜索词】并存储

一、百度搜索关键词【知了壳公司转让】【知了壳公司转让】搜索链接 https://www.baidu.com/s?wd=%E7%9F%A5%E4%BA%86%E5%A3%B3%E5%85%AC%E5%...
  • vailook
  • vailook
  • 2016年11月15日 13:37
  • 2185

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

一、python请求要抓取的url页面 要抓取的url http://news.baidu.com/ ,先python模拟请求该url#!/usr/bin/python # -*- coding:u...
  • lenovo403
  • lenovo403
  • 2016年02月23日 09:54
  • 2385

【python网络编程】新浪爬虫:关键词搜索爬取微博数据

上学期参加了一个大数据比赛,需要抓取大量数据,于是我从新浪微博下手,本来准备使用新浪的API的,无奈新浪并没有开放关键字搜索的API,所以只能用爬虫来获取了。幸运的是,新浪提供了一个高级搜索功能,为我...
  • jiange_zh
  • jiange_zh
  • 2015年08月08日 20:04
  • 9457

python爬虫抓取多关键词搜索的百度图片

在百度图片上抓取一百多个关键词对应的图片各500张
  • vivian_ll
  • vivian_ll
  • 2017年07月11日 10:48
  • 622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从百度新闻爬取关键词搜索的页面
举报原因:
原因补充:

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