用python模拟搜索请求

作者 : 慕源网 本文共923个字,预计阅读时间需要3分钟 发布时间: 2021-09-20 共324人阅读

用python模拟搜索请求

首先建立_init_.py

 

导入所需要的包 urlib2,re,film,注释已经很清楚了,我来解释下%(film.filmName).decode(“utf-8″).encode(‘gb2312′),%是取出我存在film.py里面的值,为什么要用decode在encode呢?右键查看页面源代码,你会发现,电影天堂并不是utf-8编码,而是gb2312,所以我们要encode呀,刚才我们看到keyword是看不懂的火星文,我们现在知道了,它其实是gb2312编码,所以这里我们把filmName先解码成utf-8,变成能看懂的“傲骨贤妻“,再编码成gb2312。

 

电影天堂后台所能看懂的“傲骨贤妻”,ok,这样so.php就可以执行我们的查询操作,kwtype=0&searchtype=titile带上吧,反正也不累。

 

关于正则语法,是python基础,可以去慕课网学习,我就不解释了。我们目的是看到html里面超链接的特点,进行正则匹配

 

”’

 

遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!

 

”’

 

import urllib2

 

import film

 

import re

 

opener = urllib2.build_opener()#构建一个handler对象

 

def search():

 

req = urllib2.Request(‘http://s.ygdy8.com/plus/so.php’)

 

#so.php请求参数将中文进行了Url.encode(),所以需要将中文encode(‘gb2312’)处理

 

req.add_data(‘kwtype=0&searchtype=title&keyword=%s’ %(film.filmName).decode(“utf-8”).encode(‘gb2312’))

 

html = opener.open(req).read().decode(‘gb2312′)

 

reg = r’/html/tv/oumeitv/[0-9]{8}/[0-9a-zA-Z.]{9,10}’

 

return re.findall(reg,html)

 

search()

 


慕源网 » 用python模拟搜索请求

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录