当前位置:首页 » 编程语言 » pythonurl格式

pythonurl格式

发布时间: 2023-02-09 19:39:29

‘壹’ python爬虫爬取图片这个报错怎么处理

你好!你的错误原因在于html页面获取到的img标签src属性中的链接,可能是因为src中的url格式是这样的:

<imgsrc="//hao123.com/xxx/xxx/xxx/"></img>

这样获取到的链接都没有带上协议:http或者https。而导致程序抛出ValueError的错误异常。

因为正常的url格式应该类似这样的:https://www..com/

即 协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

参考网页链接

可将代码中第一个for循环中download_links.append修改为:

forpic_taginsoup.find_all('img'):
pic_link=pic_tag.get('src')
download_links.append('http:'+pic_link)

‘贰’ python指定url

今天简单使用了一下python的re模块和lxml模块,分别利用的它们提供的正则表达式和xpath来解析页面源码从中提取所需的title,xpath在完成这样的小任务上效率非常好,在这里之所以又使用了一下正则表达式是因为xpath在处理一些特殊的页面的时候会出现乱码的情况,当然这不是xpath的原因,而是页面本身编码,跟utf-8转码之间有冲突所致,这里看代码:

python抽取指定url页面的title方法(python获取当前页面的url) python 抽取 url title 脚本之家 第1张

# !/usr/bin/python
#-*-coding:utf-8-*-
'''
功能:抽取指定url的页面内容中的title
'''
import re
import chardet
import urllib
from lxml import etree
def utf8_transfer(strs):
'''
utf8编码转换
'''
try:
if isinstance(strs, unicode):
strs = strs.encode('utf-8')
elif chardet.detect(strs)['encoding'] == 'GB2312':
strs = strs.decode("gb2312", 'ignore').encode('utf-8')
elif chardet.detect(strs)['encoding'] == 'utf-8':
strs = strs.decode('utf-8', 'ignore').encode('utf-8')
except Exception, e:
print 'utf8_transfer error', strs, e
return strs
def get_title_xpath(Html):
'''
用xpath抽取网页Title
'''
Html = utf8_transfer(Html)
Html_encoding = chardet.detect(Html)['encoding']
page = etree.HTML(Html, parser=etree.HTMLParser(encoding=Html_encoding

‘叁’ python中url太长怎么解决

今天写了个脚本 主要就是实现利用sqlInj点直接把数据获取到本地并存到Mysql数据库
学过Python的都知道可以使用urllib2中的request()方法直接打开Url,但仅限于url后没有跟复杂的参数串
今天我利用的Url是
' and (select top 1 cast(CONTENT as varchar(8000)) from xxx.dbo.xxx where cast(CONTENT as varchar) not in (select top 22 cast(CONTENT as varchar) from xxx.dbo.xxx))=0--
开始我也直接用以下语句测试的:
url="上面的URL"
req=urllib2.Request(url)
urllib2.urlopen(req)
可是执行后一直提示500错误,由此可以发现应该是Python在对Url进行编码的时候更改了某些特殊字符造成Url失效
我们可以用urllib2或urllib的quote()方法控制对特殊字符的URL编码,这里推荐用 urllib下的quote_plus()方法,它将空格转化成'+'而非%20通用性更好。
我们更改后的代码如下:
url = "' and (select top 1 cast(CONTENT as varchar(8000)) from xxx.dbo.xxx where cast(CONTENT as varchar) not in (select top "+str(count)+" cast(CONTENT as varchar) from xxx.dbo.xxx))=0--"
quoteUrl=urllib.quote_plus(url,safe=':\'/?&=()')
fd = urllib.urlopen(quoteUrl)
这样我们就可以正常的提取数据了

‘肆’ 【壹】Python爬虫入门——认识URL

【系列前言】前段时间李响同学入门了一些Python的基础知识,觉得一直在IDLE里print一些算法题有一些枯燥,所以决定通过学习爬虫来提高自己的兴趣。而且最近确实有一些重复性劳动,想使用爬虫简化工作。遂打算边自学边写自己自学的过程,一方面作为小白的我可以和其他Python大神交流,一方面也可以以此监督自己。
【本人使用Python版本:2.7.5】

首先按理解一下爬虫(Spider),如果把一个站点比作一张纵横交错的蜘蛛网,那么我们爬虫要做的就是在这张网上爬来爬去,获得这张网上的信息和资源。而Web上每种资源,比如HTML文档、图片、视频等都由一个URI(Universal Resource Identifier,通用资源标志符)进行定位。 URL(Uniform Resource Locator,统一资源定位符)是URI的子集。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。而爬虫主要的处理对象就是URL。所以务必要对URL有一定的熟悉。

URI通常由三部分组成:
1.访问资源的命名机制;
2.存放资源的主机名;
3.资源自身 的名称,由路径表示。

URL的格式由三部分组成:
1.第一部分是协议(或称为服务方式)。
2.第二部分是存有该资源的主机IP地址(有时也包括端口号)。
3.第三部分是主机资源的具体地址,如目录和文件名等。
知乎:HTTP 协议中 URI 和 URL 有什么区别?@西毒 的回答

最近在搞挑战杯可能会有点忙,但还是希望自己能按照计划学习,定期更新此系列。

‘伍’ python url拼接代码

方法来自网络,保存以便以后自用。

经测试可正确拼接下列形式
base1 = ' http://www.bagtree.com/' url1 = '../../themes/bagtree_2011/images/pin.gif'
base2 = ' http://info.ceo.hc360.com/list/qygl-ldl.shtml' url2 = '/2011/11/250020188368.shtml'
base3 = ' http://info.ceo.hc360.com/2012/07/190833206838.shtml' url3 = '190833206838-2.shtml'

1_url = " https://pvp.qq.com/web201605/ "
2_url="/herodetail/531.shtml"
add_url =" https://pvp.qq.com/web201605/herodetail/531.shtml "

‘陆’ Python 用正则表达式提取txt文件里包含的url的表达式

这种结构化的数据交换格式,按照约定的格式来解析是最好的,而不是去用正则,这样能准确的取出数据中对应位置的数据。像这样

#!/usr/bin/envpython
#-*-coding:utf-8-*-
importjson
withopen('google.txt')asf:
obj=json.loads(f.read())
urls=[e[0]foreinobj]
print(urls)

我用你上面的部分数据做了一个测试用的google.txt,这个运行的结果是

[u'http://en.wikipedia.org/wiki/403(b)', u'http://www.investopedia.com/terms/1/403bplan.asp']

‘柒’ 利用Python缩短URL链接

有时候我们要把一些链接发短信通知别人,如果链接太长,一条短信支持不了。
发现Python就可以解决这个问题。

第一步: 安装库
在windows下,输入cmd,进入DOS界面,输入 pip install pyshorteners
当然,前提是你已经安装了pip

第二步:写程序

第三步:调用程序

如果你是用Jupyter Notebook,你可以参考以下步骤

‘捌’ 【Python中常用的库系列】——操作url的模块urlparse 模块

文章目录

一、功能介绍

二、功能介绍

1.`urlparse.urlparse`

2.`urlparse.urlsplit`

3.`urlparse.urljoin`

一、功能介绍

官方文档 :http://docs.python.org/library/urlparse.html

作用:urlparse模块主要是用于解析url中的参数 对url按照一定格式进行 拆分或拼接

注意:urlparse 模块在 python 3.0 中 已经改名为 urllib.parse

二、功能介绍

1.urlparse.urlparse

1.1 获取ParseResult对象

将url分为6个部分,返回一个包含6个字符串的元组:协议、位置、路径、参数、查询、片段。

举例:

import urlparse

url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print url_change

'''

输出结果:

ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')

'''

scheme 是协议

netloc 是域名服务器

path 相对路径

params是参数

query是查询的条件

fragment是片段

1.2获取结果的某一项

import urlparse

url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print url_change.query  # opt=1

print url_change.scheme  # https

1.3获取结果的某一项,用字典或元组展示

import urlparse

url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print urlparse.parse_qs(url_change.query)  # {'opt': ['1']}

print urlparse.parse_qsl(url_change.query)  # [('opt', '1')]

2.urlparse.urlsplit

2.1获取SplitResult对象

和urlparse差不多,将url分为5部分,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。

import urlparse

url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1')

print url_change

'''

输出结果:

SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')

'''

scheme 是协议

netloc 是域名服务器

path 相对路径

query是查询的条件

fragment是片段

2.2获取某一项

print url_change.scheme # https

3.urlparse.urljoin

将相对的地址组合成一个url,对于输入没有限制,开头必须是http://或者https://,否则将不组合前面。

import urlparse

new_url = urlparse.urljoin('https://.com/ssss/','88888')

print new_url

'''

https://.com/ssss/88888

''' 注意 :如果输入错误信息 如 new_url = urlparse.urljoin('122','88888') 并不会将两者合并,而输出后边的链接,即‘88888’

域名放在第一个参数,第二个参数为要和域名拼接的子链接

‘玖’ url编码问题在python中怎么解决

最近在抓取一些js代码产生的动态数据,需要模拟js请求获得所需用的数据,遇到对url进行编码和解码的问题,就把遇到的问题总结一下,有总结才有进步,才能使学到的知识更加清晰。对url进行编码和解码,python提供了很方便的接口进行调用。

url中的query带有特殊字符(不是url的保留字)时需要进行编码。当url中带有汉字时,需要特殊的处理才能正确编码,以下都只针对这种情形,当然也适用于纯英文字符的url。

(1) url编码:

import urllib

url = 'wd=哈哈' #如果此网站编码是gbk的话,需要进行解码,从gbk解码成unicode,再从Unicode编码编码为utf-8格式。

url = url.decode('gbk', 'replace')

print urllib.quote(url.encode('utf-8', 'replace'))

结果: 3a%2f%2ftest.com%2fs%3fwd%3d%e5%93%88%e5%93%88

(2) url解码:

import urllib

encoded_url = est.com%2fs%3fwd%3d%e5%93%88%e5%93%88'

print urllib.unquote(encoded_url).decode('utf-8', 'replace').encode('gbk', 'replace') #反过来

函数调用的参数以及结果都是utf-8编码的,所以在对url编码时,需要将参数串的编码从原始编码转换成utf-8,

对url解码时,需要将解码结果从utf-8转换成原始编码格式。

依据网站采用的编码不同,或是gbk或是utf-8,赋赋予不同的编码,进行不同的url转码。GBK格式,一个中文字符转为%xx%xx,共两组;utf-8格式,一个中文字符转为%xx%xx%xx,共三组。

  • >>>importsys,urllib

  • >>>s='杭州'

  • >>>urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))

  • %BA%BC%D6%DD

  • >>>urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))

  • '%E6%9D%AD%E5%B7%9E'

  • [python]view plain

  • a="墨西哥女孩被拐4年接客4万次生的孩子成为人质-搜狐新闻"

  • printurllib.quote(urllib.quote(a))

  • 进行两次编码转换后,会变为:%25E5%25A2%25A8%25E8%25A5%25BF%25E5%2593%25A5%25E5%25A5%25B3%25E5%25AD%25A9%25E8%25A2%25AB%25E6%258B%25904%25E5%25B9.................................................................................这样的形式。

    同样需要两次解码后才能得到中文。

    最近用python写了个小爬虫自动下点东西,但是url 是含中文的,而且中文似乎是 gbk 编码然后转成 url的。举个例子吧,我如果有个unicode字符串“历史上那些牛人们.pdf”,那么我转换成url之后是,
    t="%20%E5%8E%86%E5%8F%B2%E4%B8%8A%E9%82%A3%E4%BA%9B%E7%89%9B%E4%BA%BA%E4%BB%AC.pdf",
    但是对方网站给的是 s="%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF"

    >>>print urllib.unquote("%C0%FA%CA%B7%C9%CF%C4%C7%D0%A9%C5%A3%C8%CB%C3%C7.PDF").decode('gbk').encode('utf-8')

    >>>历史上那些牛人们.PDF

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:751
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1012
python中的init方法 发布:2025-10-20 08:17:33 浏览:719
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:879
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1127
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:351
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:229
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:912
python股票数据获取 发布:2025-10-20 07:39:44 浏览:876