• 关于 php登录爬虫 的搜索结果

问题

右键点击“查看源代码”比按F12看到的源代码内容少,怎么回事?

杨冬芳 2019-12-01 20:04:32 1418 浏览量 回答数 1

问题

云服务器网站没有被百度和google收录或者收录少怎么办?

qilu 2019-12-01 22:01:54 11014 浏览量 回答数 13

问题

云服务器网站没有被百度和google收录或者收录少怎么办?

qilu 2019-12-01 21:55:27 26055 浏览量 回答数 25

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

回答

Py2.x: Urllib库Urllin2库Py3.x: Urllib库变化: 在Pytho2.x中使用import urllib2——-对应的,在Python3.x中会使用import urllib.request,urllib.error。在Pytho2.x中使用import urllib——-对应的,在Python3.x中会使用import urllib.request,urllib.error,urllib.parse。在Pytho2.x中使用import urlparse——-对应的,在Python3.x中会使用import urllib.parse。在Pytho2.x中使用import urlopen——-对应的,在Python3.x中会使用import urllib.request.urlopen。在Pytho2.x中使用import urlencode——-对应的,在Python3.x中会使用import urllib.parse.urlencode。在Pytho2.x中使用import urllib.quote——-对应的,在Python3.x中会使用import urllib.request.quote。在Pytho2.x中使用cookielib.CookieJar——-对应的,在Python3.x中会使用http.CookieJar。在Pytho2.x中使用urllib2.Request——-对应的,在Python3.x中会使用urllib.request.Request。快速爬取一个网页import urllib.request file=urllib.request.urlopen('http://www.baidu.com') data=file.read() #读取全部 dataline=file.readline() #读取一行内容 fhandle=open("./1.html","wb") #将爬取的网页保存在本地fhandle.write(data)fhandle.close() 浏览器的模拟应用场景:有些网页为了防止别人恶意采集其信息所以进行了一些反爬虫的设置,而我们又想进行爬取。 解决方法:设置一些Headers信息(User-Agent),模拟成浏览器去访问这些网站。 import urllib.requestimport urllib.parse url = 'http://www.baidu.com'header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36'} request = urllib.request.Request(url, headers=header)reponse = urllib.request.urlopen(request).read() fhandle = open("./baidu.html", "wb")fhandle.write(reponse)fhandle.close() 代理服务器的设置应用场景:使用同一个IP去爬取同一个网站上的网页,久了之后会被该网站服务器屏蔽。 解决方法:使用代理服务器。 (使用代理服务器去爬取某个网站的内容的时候,在对方的网站上,显示的不是我们真实的IP地址,而是代理服务器的IP地址) def use_proxy(proxy_addr,url): import urllib.request proxy=urllib.request.ProxyHandler({'http':proxy_addr}) opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler) urllib.request.install_opener(opener) data=urllib.request.urlopen(url).read().decode('utf8') return data proxy_addr='61.163.39.70:9999'data=use_proxy(proxy_addr,'http://www.baidu.com')print(len(data)) Cookie的使用应用场景:爬取的网页涉及登录信息。访问每一个互联网页面,都是通过HTTP协议进行的,而HTTP协议是一个无状态协议,所谓的无状态协议即无法维持会话之间的状态。 import urllib.requestimport urllib.parseimport urllib.errorimport http.cookiejar url='http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=La2A2'data={ 'username':'zhanghao', 'password':'mima', }postdata=urllib.parse.urlencode(data).encode('utf8')header={ 'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' } request=urllib.request.Request(url,postdata,headers=header) 使用http.cookiejar.CookieJar()创建CookieJar对象 cjar=http.cookiejar.CookieJar() 使用HTTPCookieProcessor创建cookie处理器,并以其为参数构建opener对象 cookie=urllib.request.HTTPCookieProcessor(cjar)opener=urllib.request.build_opener(cookie) 将opener安装为全局 urllib.request.install_opener(opener) try: reponse=urllib.request.urlopen(request) except urllib.error.HTTPError as e: print(e.code) print(e.reason) fhandle=open('./test1.html','wb')fhandle.write(reponse.read())fhandle.close() url2='http://bbs.chinaunix.net/forum-327-1.html' #打开test2.html文件,会发现此时会保持我们的登录信息,为已登录状态。也就是说,对应的登录状态已经通过Cookie保存。reponse2=urllib.request.urlopen(url)fhandle2=open('./test2.html','wb')fhandle2.write(reponse2.read())fhandle2.close()

元芳啊 2019-12-02 01:04:38 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SQL审核 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 人工智能 阿里云云栖号 云栖号案例 云栖号直播