Python 简单爬虫抓取糗事百科

# coding:utf-8

import time
import random
import urllib2
from bs4 import BeautifulSoup

#引入 beautifulsoup模块

#p = 1

#定义 页
url = ‘http://www.qiushibaike.com/text/page/‘
#定义header

my_headers = [
    ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0‘,
    ‘Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)‘,
    ‘Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)‘,
    ‘ELinks/0.12pre5 (textmode; Linux; -)‘
]

#获取网页内容
def get_con(url, headers):
    random_header = random.choice(headers)
    req = urllib2.Request(url)
    req.add_header(‘User-Agent‘, random_header)
    req.add_header(‘Host‘, ‘www.qiushibaike.com‘)
    req.add_header(
        ‘Referer‘, ‘http://www.qiushibaike.com/‘)
    req.add_header(‘GET‘, ‘url‘)
    content = urllib2.urlopen(req).read()
    return content

#读取每一条信息

def get_txt(haha):
    soup = BeautifulSoup(haha)
    all_txt = soup.find_all(‘div‘, class_="content")
    i = 1
    for txt in all_txt:
        cont = str(txt)
        head = cont.find(r‘class="content"‘)
        end = cont.find(r‘</div‘, head)
        con = cont[head + 16:end]
        print str(i), con
        i = i + 1
        time.sleep(3)

#根据输入的数字,确定打印起始页

page = raw_input("Please input a number:")
p = int(page)

#使用while循环打印出所有信息
while p < 36:
    haha = get_con(url + str(p) + ‘?s=4796159‘, my_headers)
    print get_txt(haha)
    print "这是第" + str(p) + "页"
    p = p + 1

时间: 2024-11-29 09:09:54

Python 简单爬虫抓取糗事百科的相关文章

Python 网络爬虫 - 抓取糗事百科的段子(最新版)

代码 # -*- coding: cp936 -*- __author__ = "christian chen" import urllib2 import re import threading import time class Tool: def pTitle(self): return re.compile('<title.*?>(.*?)</', re.S) def pContent(self): return re.compile('<div cla

Python爬虫--抓取糗事百科段子

今天使用python爬虫实现了自动抓取糗事百科的段子,因为糗事百科不需要登录,抓取比较简单.程序每按一次回车输出一条段子,代码参考了 http://cuiqingcai.com/990.html 但该博主的代码似乎有些问题,我自己做了修改,运行成功,下面是代码内容: 1 # -*- coding:utf-8 -*- 2 __author__ = 'Jz' 3 import urllib2 4 import re 5 6 #糗事百科爬虫类 7 class QSBK: 8 #初始化 9 def __

Python爬虫爬取糗事百科段子内容

参照网上的教程再做修改,抓取糗事百科段子(去除图片),详情见下面源码: #coding=utf-8#!/usr/bin/pythonimport urllibimport urllib2import reimport threadimport timeimport sys #定义要抓取的网页#url = 'http://www.qiushibaike.com/hot/'#读取要抓取的网页#globalcontent = urllib.urlopen(url).read()#抓取段子内容#new_

HtmlAgilityPack抓取糗事百科內容

本文实例讲述了C#使用HtmlAgilityPack抓取糗事百科内容的方法.分享给大家供大家参考.具体实现方法如下: Console.WriteLine("*****************糗事百科24小时热门*******************"); Console.WriteLine("请输入页码,输入0退出"); string page = Console.ReadLine(); while (page!="0") { HtmlWeb h

bs4抓取糗事百科

抓取糗事百科内容及评论,不包含图片信息.user-agent填入浏览器的即可.user-agent对应的value,360极速浏览器的话,可以在地址栏输入about:version,回车,用户代理后面的一长串就是需要填入''里面的内容.其他的可以自行百度 import urllib.request import re from urllib import request from bs4 import BeautifulSoup #1.获取网页源代码 def get_html(url): hea

Python爬虫-爬取糗事百科段子

闲来无事,学学python爬虫. 在正式学爬虫前,简单学习了下HTML和CSS,了解了网页的基本结构后,更加快速入门. 1.获取糗事百科url http://www.qiushibaike.com/hot/page/2/    末尾2指第2页 2.先抓取HTML页面 import urllib import urllib2 import re page = 2 url = 'http://www.qiushibaike.com/hot/page/' + str(page) #对应第2页的url

python3 爬虫---爬取糗事百科

这次爬取的网站是糗事百科,网址是:http://www.qiushibaike.com/hot/page/1 分析网址,参数'page/'后面的数字'1'指的是页数,第二页就是'/page/2',以此类推... 一.分析网页 网页图片 然后明确要爬取的元素:作者名.内容.好笑数.以及评论数量 每一个段子的信息存放在'div id="content-left"'下的div中 爬取元素的所在位置 二.爬取部分 工具: Python3 requests xpath 1.获取每一个段子 1 #

python beautifulsoup bs4爬虫 爬取糗事百科

声明:仅用于学习语法,请勿用于非法用途 import urllib.request import re from bs4 import BeautifulSoup # -*- coding:utf-8 -*- url = 'http://www.qiushibaike.com/hot/' user_agent='Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' headers={'User-Agent':user_agent} request = u

爬虫 爬取糗事百科热门板块的信息

分析: 1.先查看返回的内容是否与显示的内容一样 2.再看页数的变化,每次会加一,总共13页,因此可以一次性构造地址列表 3.因此可直接结合 chrome插件 xpath helper 与 elemetns显示的内容进行定位要爬取的内容 用到的模块 requests+json+lxml+xpath 下面是代码: import requests import json from lxml import etree class QiubaiSpider: def __init__(self): se