鱼C论坛

 找回密码
 立即注册
查看: 531|回复: 2

[已解决]求助

[复制链接]
发表于 2019-5-29 11:04:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个错误是怎么回事
错误
  1. Traceback (most recent call last):
  2.   File "F:\Py\课堂练习.py", line 12, in <module>
  3.     title_list = re.findall(r'<a\s+herf.*?>.*?</a>',response)
  4.   File "D:\安装目标\Python\lib\re.py", line 223, in findall
  5.     return _compile(pattern, flags).findall(string)
  6. TypeError: expected string or bytes-like object
复制代码


程序
  1. import urllib.request
  2. import re

  3. url = 'https://www.baidu.com/s?wd=%E4%BB%A3%E7%90%86ip%E5%85%8D%E8%B4%B9&rsv_spt=1&rsv_iqid=0x98ba7a740015a39f&issp=1&f=3&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=sitehao123_15&rsv_enter=1&rsv_sug3=1&rsv_sug1=1&rsv_sug7=001&rsv_sug2=1&rsp=0&rsv_sug9=es_2_1&rsv_sug4=2795&rsv_sug=3'

  4. headers ={'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.204 Mobile Safari/537.36'}

  5. req = urllib.request.Request(url,headers = headers)

  6. response =urllib.request.urlopen(req)

  7. title_list = re.findall(r'<a\s+herf.*?>.*?</a>',response)

  8. print(title_list)
复制代码
最佳答案
2019-5-29 11:55:07
import urllib.request
import urllib.parse
import re

url = 'https://www.baidu.com/'

headers ={'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)'}
data= bytes(urllib.parse.urlencode({'word':'代理ip免费'}),encoding='utf-8')
req = urllib.request.Request(url,headers = headers,data=data)

response =urllib.request.urlopen(req)
#这样写返回的是一个对象

print(response)
#<http.client.HTTPResponse object at 0x01B1A230>
print(dir(response))
#['__abstractmethods__', '__class__', '__del__', '__delattr__',
#  很多属性    省略一下
#'read', 'read1', 'readable', 'readinto', 'readinto1', 'readline', 'readlines', 'reason', 'seek', 'seekable', 'status', 'tell',
# 'truncate', 'url', 'version', 'will_close', 'writable', 'write', 'writelines']

#属性里面read可以返回网页的内容
response =urllib.request.urlopen(req).read().decode('utf-8')

print(response)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-29 11:09:52 From FishC Mobile | 显示全部楼层
估计是表达式非法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-29 11:55:07 | 显示全部楼层    本楼为最佳答案   
import urllib.request
import urllib.parse
import re

url = 'https://www.baidu.com/'

headers ={'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N)'}
data= bytes(urllib.parse.urlencode({'word':'代理ip免费'}),encoding='utf-8')
req = urllib.request.Request(url,headers = headers,data=data)

response =urllib.request.urlopen(req)
#这样写返回的是一个对象

print(response)
#<http.client.HTTPResponse object at 0x01B1A230>
print(dir(response))
#['__abstractmethods__', '__class__', '__del__', '__delattr__',
#  很多属性    省略一下
#'read', 'read1', 'readable', 'readinto', 'readinto1', 'readline', 'readlines', 'reason', 'seek', 'seekable', 'status', 'tell',
# 'truncate', 'url', 'version', 'will_close', 'writable', 'write', 'writelines']

#属性里面read可以返回网页的内容
response =urllib.request.urlopen(req).read().decode('utf-8')

print(response)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 23:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表