python爬虫-AJAX数据爬取和HTTPS访问笔记

本文介绍了Python爬虫在处理AJAX数据和HTTPS网站时的注意事项,特别是针对HTTPS证书忽略的问题。通过导入特定模块,可以处理不安全的HTTPS连接,尽管现在大多数网站已进行CA认证,使得此类操作变得不常见。
摘要由CSDN通过智能技术生成

https://movie.douban.com/j/search_subjects?type=movie&tag=热门&page_limit=10&page_start=0

对需要爬取的连接进行分析,获得以下需要URL编码的标签
type=movie电影标签
tag=热门电影下的热门板块
page_limil=10可以获取不同数量的信息
page_start=0开始位置


from urllib.parse import urlencode
from urllib.request import urlopen, Request
import simplejson

ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
# 对怕爬虫进行伪装,也可以设置UA池进行伪装,使服务器更难分辨爬虫
jurl = 'https://movie.douban.com/j/search_subjects'

d = {
    'type': 'movie',
    'tag': '热门',
    'page_limit': '10',
    'page_start': '0'
}

req = Request('{}?{}'.format(jurl, urlencode(d)), headers={
    'User-agent': ua
})

with urlopen(req) as res:
    subjects = simplejson.loads(res.read())
    print(len(subjects['subjects']))
    print(subjects)

HTTPS证书忽略

from urllib.request import Request, urlopen

request = Request('https://www.12306.cn/mormhweb/')
request.add_header(
    "User_agent",
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'
)

with urlopen(request) as res:
    print(res._method)
    print(res.read())

P.S. 课程中出现 ssl.CertificateError 错误,原因是当时12306并未进行CA认证,现在已经修复。

对于不安全的https网站,可以导入ssl模块,忽略证书不安全信息

from urllib.request import Request, urlopen
import ssl

request = Request('https://www.12306.cn/mormhweb/')
request.add_header(
    "User_agent",
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1'
)

# 忽略不信任的证书
context = ssl._create_unverified_context()

with urlopen(request, context=context) as res:
    # context参数,实现SSL加密传输。
    print(res._method)
    print(res.read())

现在来说大部分网站都已经完成了CA认证,所以urlopen中的context参数也很少使用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值