本文整理汇总了Python中wpull.http.request.Response.url_info方法的典型用法代码示例。如果您正苦于以下问题:Python Response.url_info方法的具体用法?Python Response.url_info怎么用?Python Response.url_info使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wpull.http.request.Response
的用法示例。
在下文中一共展示了Response.url_info方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_redirect_loop
# 需要导入模块: from wpull.http.request import Response [as 别名]
# 或者: from wpull.http.request.Response import url_info [as 别名]
def test_redirect_loop(self):
http_client = MockHTTPClient()
pool = RobotsTxtPool()
client = RichClient(http_client, pool)
session = MockRobotsTxtRichClientSession(
client, Request.new('http://example.com')
)
self.assertEqual(RobotsState.unknown, session._robots_state)
for dummy in range(21):
request = session.next_request
self.assertTrue(request.url_info.url.endswith('robots.txt'))
response = Response('HTTP/1.0', 302, 'See else')
response.url_info = request.url_info
response.fields['location'] = '/robots.txt'
http_client.response = response
yield session.fetch()
request = session.next_request
self.assertTrue(request)
response = Response('HTTP/1.0', 200, 'OK')
http_client.response = response
yield session.fetch()
self.assertEqual(RobotsState.ok, session._robots_state)
print(session.next_request)
self.assertTrue(session.done)
示例2: test_fetch_allow_redirects
# 需要导入模块: from wpull.http.request import Response [as 别名]
# 或者: from wpull.http.request.Response import url_info [as 别名]
def test_fetch_allow_redirects(self):
http_client = MockHTTPClient()
pool = RobotsTxtPool()
client = RichClient(http_client, pool)
session = MockRobotsTxtRichClientSession(
client, Request.new('http://example.com')
)
self.assertEqual(RobotsState.unknown, session._robots_state)
# Try fetch example.com/ (need robots.txt)
self.assertFalse(session.done)
request = session.next_request
self.assertEqual(
'http://example.com/robots.txt',
request.url_info.url
)
response = Response('HTTP/1.0', 301, 'Moved')
response.fields['location'] = 'http://www.example.com/robots.txt'
response.url_info = request.url_info
http_client.response = response
yield session.fetch()
self.assertEqual(RobotsState.in_progress, session._robots_state)
# Try fetch www.example.com/robots.txt
self.assertFalse(session.done)
request = session.next_request
self.assertEqual(
'http://www.example.com/robots.txt',
request.url_info.url
)
response = Response('HTTP/1.0', 301, 'Moved')
response.fields['location'] = 'http://www.example.net/robots.txt'
response.url_info = request.url_info
http_client.response = response
yield session.fetch()
self.assertEqual(RobotsState.in_progress, session._robots_state)
# Try fetch www.example.net/robots.txt
self.assertFalse(session.done)
request = session.next_request
self.assertEqual(
'http://www.example.net/robots.txt',
request.url_info.url
)
response = Response('HTTP/1.0', 200, 'OK')
response.body.content_file = io.StringIO('User-agent:*\nAllow: /\n')
response.url_info = request.url_info
http_client.response = response
yield session.fetch()
self.assertEqual(RobotsState.ok, session._robots_state)
# Try fetch example.com/ (robots.txt already fetched)
self.assertFalse(session.done)
request = session.next_request
self.assertEqual(
'http://example.com/',
request.url_info.url
)
response = Response('HTTP/1.0', 301, 'Moved')
response.fields['location'] = 'http://www.example.com/'
response.url_info = request.url_info
http_client.response = response
yield session.fetch()
self.assertEqual(RobotsState.ok, session._robots_state)
# Try www.example.com/ (robots.txt already fetched)
self.assertFalse(session.done)
request = session.next_request
self.assertEqual(
'http://www.example.com/',
request.url_info.url
)
response = Response('HTTP/1.0', 301, 'Moved')
response.fields['location'] = 'http://www.example.net/'
response.url_info = request.url_info
http_client.response = response
yield session.fetch()
self.assertEqual(RobotsState.ok, session._robots_state)
# Try www.example.net/ (robots.txt already fetched)
self.assertFalse(session.done)
request = session.next_request
self.assertEqual(
'http://www.example.net/',
request.url_info.url
)
response = Response('HTTP/1.0', 301, 'Moved')
response.fields['location'] = 'http://lol.example.net/'
response.url_info = request.url_info
http_client.response = response
yield session.fetch()
self.assertEqual(RobotsState.ok, session._robots_state)
# Try lol.example.net/ (need robots.txt)
self.assertFalse(session.done)
request = session.next_request
self.assertEqual(
'http://lol.example.net/robots.txt',
request.url_info.url
#.........这里部分代码省略.........