python抓取网页数据(提取网页内容的几种方法有哪些?提取网页编码的方法)
优采云 发布时间: 2022-01-10 11:06python抓取网页数据(提取网页内容的几种方法有哪些?提取网页编码的方法)
爬虫的第一步一定是获取网页的代码。以下是自己整理的三种方式,希望对以后学习的同学有所帮助。 (1)urllib.request 获取网页代码
#d导入所需要的模块
import urllib
from urllib import request
import random
# 准备一个地址
url = 'http://www.taobao.com'
# 包装成一个请求用myrequest 变量接受
myrequest = request.Request(url)
# 增加浏览器头部
user_agent = [
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"...
]
myrequest.add_header('User_Agent',random.choice(user_agent))
# 增加代理ip
proxies = [
'61.135.217.7:80',
'118.190.95.35:9001',
'118.190.210.227:3128',
'118.190.199.55:80'
]
# 固定写法
proxy_support = urllib.request.ProxyHandler({'http': random.choice(proxies)})
opener = request.build_opener(proxy_support)
request.install_opener(opener)
# 访问地址,使用变量存储一下
result = request.urlopen(myrequest)
# 读取结果并解码
print(result.read().decode('utf-8'))
(2)请求获取正确的页面编码
import requests
#准备一个url
import random
import chardet
url = 'http://www.baidu.com/'
#设置浏览器头部
user_agent = [
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
]
#添加代理ip
ips = [
{'https':'180.96.63.186:9087','http':'118.190.95.35:9001'}
]
response = requests.get(url)
#response.text 文本内容
#response.content 字节流
#获取编码
code = chardet.detect(response.content)
print('网页编码是:', code)
#解码
response.encoding = code
print(response.text)
(3)selenium 获取网页代码
from selenium import webdriver
#相当于打开一个浏览器
browser = webdriver.Chrome()
#准备一个网址
url = 'https://music.163.com/#/discover/toplist'
#打开网址获取网页编码
browser.get(url)
得到网页的编码后,我们就可以从网页中提取出我们需要的内容了。下一章会介绍几种提取网页内容的方法