大家好,给大家分享一下利用python爬取简单网页数据步骤,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

爬虫是Python语言最基本的用法之一,爬虫的前提就是数据请求,数据请求方法就urlopen和requests这两种比较常用,而两种方法大同小异,具体我们通过代码来看看

urlopen方法

urlopen分为两种情况:

一:请求网址中没有中文

from urllib.request import Request,urlopen

def url_urlopen(self):

url='https://blog.csdn.net/'

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

}

request=Request(url,headers=headers)

response=urlopen(request)

code=response.read().decode()

print(code)

二:请求网址中有中文,需要对网址进行解析

from urllib.request import Request,urlopen

from urllib.parse import quote

import string

def url_urlopen(self):

url='https://www.sojson.com/open/api/weather/xml.shtml?city=郑州'

response=urlopen(quote(url,safe=string.printable))

code=response.read().decode()

print(code)

requests方法

request方法没有对网址的要求,相对于urlopen比较简单

import requests

def url_requests(cls):

url='https://blog.csdn.net/'

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

}

code=requests.get(url,headers=headers).content.decode()

print(code)

请求方法进阶

上面这两种方法不支持修改ip,获取cookie,验证代理等内容

如果要使用这些内容,需要使用build_opener来进行处理

(1)修改IP

1.导入相关第三方库

import random

from urllib.request import Request,urlopen,ProxyHandler,bulid_opener

2.准备一些IP(注意域名),并设置headers

ip_list=[

'255.255.255.99:99',

'255.255.254.99:99',

'255.255.253.99:99',

'255.255.252.99:99',

]

headers = {

'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

}

3.请求网址并随机一个ip

如果域名是http,则key值为http

如果域名是https,则key值为https

proxy={ 'http':random.choice(ip_list)}

request=Request('http://www.baidu.com',headers=headers)

4.利用build_operner来使用替换ip(重点)

proxy_handler=ProxyHandler(proxy)

opener=build_opener(proxy_handler)

response=opener.open(request)

code=response.read().decode()

print(code)

(2)获取cookie

1.导入相关第三方库

from http.cookiejar import CookieJar

from urllib.request import Request,urlopen,HTTPCookieProcessor,build_opener

2.创建一个管理cookie的对象并使用获取到的cookie进行访问

cookie_obj=CookieJar()

cookie_handler=HTTPCookieProcessor(cookie_obj)

opener=build_opener(cookie_handler)

response=opener.open('http://www.neihanshequ.com')

code=response.read().decode()

print(code)

关于数据请求就说到这里吧,学会后爬取静态数据基本上没什么问题了,爬取动态数据之后再说

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐