前几天写了个爬虫,用path、re、BeautifulSoup爬取的B站python视频,但是这个爬虫有有个缺陷,没能获取视频的信息,如果你去尝试你会发现它根本就不在返回的结果里面。今天就用分析Ajax的方法获取到。
分析页面
点一下搜索,这个url才会出现,或者点一下下一页
然后就构造这个请求就可以了。需要注意的是最后一个参数不能添加。
代码实战
代码里面有些解释已经很清楚了,在这里再次复习一下
resub()
这个函数传入五个参数,前三个是必须传入的pattern,、repl、string
第一个是表示的是正则表达式中模式字符串
第二个是要被替换的字符串
第三个是文本字符串剩下两个可选参数,一个是count一个是flag。
时间戳转换成标准格式的时间第一种方法
第二种方法
综上就是这次的全部内容,多加练习继续加油!
使用python Django做网页的步骤
1 、创建一个django项目
使用django-adminpy startproject MyDjangoSite 参考这里
2、建立视图
from djangohttp import HttpResponsedef hello(request): return
HttpResponse("我的第一个简单的python django项目。")
3、修改urlspy
我们为urlpatterns加上一行: (r‘^hello/$', hello),
这行被称作URLpattern,它是一个Python的元组。元组中第一个元素是模式匹配字符串(正则表达式);第二个元素是那个模式将使用的视图函数。
正则表达式字符串的开头字母“r”。
它告诉Python这是个原始字符串,不需要处理里面的反斜杠(转义字符)。一般在使用正则前加入"r"是一个好的习惯!
4、运行python managepy runserver
http://127001:8000/hello
mport urllibrequest
import re
def getHtml(url):
page = urllibrequesturlopen(url)
html = pageread()
html = htmldecode('GBK')
return html
def getMeg(html):
reg = recompile(r'')
meglist = refindall(reg,html)
for meg in meglist:
with open('outtxt',mode='a',encoding='utf-8') as file:
filewrite('%s\n' % meg)
if __name__ == "__main__":
html = getHtml(url)
getMeg(html)
个人觉得:
新手学习python爬取网页先用下面4个库就够了:(第4个是实在搞不定用的,当然某些特殊情况它也可能搞不定)
1 打开网页,下载文件:urllib
2 解析网页:BeautifulSoup,熟悉JQuery的可以用Pyquery
3 使用Requests来提交各种类型的请求,支持重定向,cookies等。
4 使用Selenium,模拟浏览器提交类似用户的操作,处理js动态产生的网页
这几个库有它们各自的功能。配合起来就可以完成爬取各种网页并分析的功能。具体的用法可以查他们的官网手册(上面有链接)。
做事情是要有驱动的,如果你没什么特别想抓取的,新手学习可以从这个闯关网站开始
,目前更新到第五关,闯过前四关,你应该就掌握了这些库的基本操作。
实在闯不过去,再到这里看题解吧,第四关会用到并行编程。(串行编程完成第四关会很费时间哦),第四,五关只出了题,还没发布题解。。。
学完这些基础,再去学习scrapy这个强大的爬虫框架会更顺些。这里有它的中文介绍。
这是我在知乎的回答,直接转过来有些链接没有生效,可以到这里看原版,http://wwwzhihucom/question/20899988/answer/59131676
python编写一个脚本的具体操作:
1、首先,打开python并创建一个新的PY文件。
2、其次,import os,因为涉及系统文件的路径,因此首先在此处导入系统模块。
3、随后,可以双击打开HTML文件,然后就可以看到书写的网页,如下图所示。
4、最后,添加htmlclose(),需添加此行代码以关闭,否则将占用大量内存,如下图所示。这样,用python简单的制作一个网页的所有操作就完成了。完成。
chrome出了headless浏览器,无头就是没有界面,据说出了这东西后phantomjs都宣布停止更新了,不过phantomjs还是能用的,也是headless浏览器。要不直接上selenium+chrome也行
使用Python访问网页主要有三种方式: urllib, urllib2, httplib
urllib比较简单,功能相对也比较弱,httplib简单强大,但好像不支持session
1 最简单的页面访问
res=urllib2urlopen(url)
print resread()
2 加上要get或post的数据
data={"name":"hank", "passwd":"hjz"}
urllib2urlopen(url, urlliburlencode(data))
3 加上http头
header={"User-Agent": "Mozilla-Firefox50"}
urllib2urlopen(url, urlliburlencode(data), header)使用opener和handler
opener = urllib2build_opener(handler)
urllib2install_opener(opener)
4 加上session
cj = cookielibCookieJar()
cjhandler=urllib2HTTPCookieProcessor(cj)
opener = urllib2build_opener(cjhandler)
urllib2install_opener(opener)
5 加上Basic认证
password_mgr = urllib2HTTPPasswordMgrWithDefaultRealm()
top_level_url = "http://www163com/"
password_mgradd_password(None, top_level_url, username, password)
handler = urllib2HTTPBasicAuthHandler(password_mgr)
opener = urllib2build_opener(handler)
urllib2install_opener(opener)
6 使用代理
proxy_support = urllib2ProxyHandler({"http":"http://1234:3128/"})
opener = urllib2build_opener(proxy_support)
urllib2install_opener(opener)
7 设置超时
socketsetdefaulttimeout(5)
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)