Python2 爬虫(三) -- 爬CSDN全部博文(自动获取页数)

简介: 在这里就学习一下python的字符串处理然后获取到页数之后,我们就啥也不用改,直接运行代码即可获得所有博文。全局变量。这里我们还要学习一下全局变量的问题import requestsimport reimport sysreload(sys)sys.setdefaultencoding("utf-8")def hi(id): url = "h

在这里就学习一下python的字符串处理然后获取到页数之后,我们就啥也不用改,直接运行代码即可获得所有博文。

全局变量。这里我们还要学习一下全局变量的问题

import requests
import re

import sys

reload(sys)
sys.setdefaultencoding("utf-8")


def hi(id):
    url = "http://blog.csdn.net/bug_moving/article/details/" + id
    print url
    hea = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}

    html = requests.get(url, headers=hea)

    print html.status_code

def write2file(content):
    filename = "123.txt"
    f = open(filename, 'a')
    f.write(content + '\n')
    f.close()

def visit(urlnum):
    hea = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}

    url = 'http://blog.csdn.net/bug_moving/article/list/' + str(urlnum)
    #url = 'http://blog.csdn.net/bug_moving'
    # url = 'http://jp.tingroom.com/yuedu/yd300p/'

    html = requests.get(url, headers=hea)

    html.encoding = 'utf-8'

    title = re.findall('<a href="/bug_moving/article/details/([0-9]*?)">', html.text, re.S)
    for each in title:
        print each
        write2file(each)
        name = re.findall('<a href="/bug_moving/article/details/'+each+'">(.*?)</a>', html.text, re.S)
        for na in name:
            write2file(na)

def setPagelsit():
    hea = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'}

    url = 'http://blog.csdn.net/bug_moving'
    # url = 'http://blog.csdn.net/bug_moving'
    # url = 'http://jp.tingroom.com/yuedu/yd300p/'

    html = requests.get(url, headers=hea)

    html.encoding = 'utf-8'

    index = re.findall('<span>([0-9]*?.*?)</span>', html.text, re.S)
    print index[0].strip()[7:9]
    global pagelist
    pagelist = int(index[0].strip()[7:9])

def loopvisit(f, n):  # f repeats n times
    if n > pagelist:
        return
    else:
        f(n)
        loopvisit(f, n + 1)

setPagelsit()
loopvisit(visit,1)

下一条爬虫估计就会登录一下,因为现在的大多数网站还是需要登录进去才可以访问内容。

目录
相关文章
|
26天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
27天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
28天前
|
数据采集 Web App开发 监控
高效爬取B站评论:Python爬虫的最佳实践
高效爬取B站评论:Python爬虫的最佳实践
|
1月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
87 6
|
29天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
1月前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
58 7
|
1月前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
1月前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
180 1
|
1月前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
20天前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
59 0