鱼C论坛

 找回密码
 立即注册
查看: 633|回复: 8

[已解决]【爬虫】遇到了些问题

[复制链接]
发表于 2021-3-26 16:20:03 | 显示全部楼层 |阅读模式

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

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

x
网页源码连接如下view-source:http://www.xbiquge.la/1/1508/1158793.html

网页url如下:http://www.xbiquge.la/1/1508/1158793.html

代码如下:
  1. from urllib.request import Request,urlopen
  2. from fake_useragent import UserAgent


  3. url = "http://www.xbiquge.la/1/1508/1158793.html"

  4. headers={
  5.             "User-Agent":UserAgent().chrome
  6.             }
  7. request =Request(url,headers=headers)
  8.    
  9. response = urlopen(request)
  10. print(response.read())  
复制代码


但奇怪的是,响应内容居然是一堆:
  1. b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\xed|iOcY\x9a\xe6\xf7\x92\xf2?\xb8\x90\xa6+B\xca\xc0A,\x95\x19\x19\xcbH\x95U\xd2\x8c\xd4S]j\xe5h\xba\xd5j\x85\x1c\xe0\x0c\xc8 \x80\x04\x93\x91\xd9\xad\x96l\x8cW\xf0\xc2\xbe\xd8\xec\x06\x82\xd5\x06\x0cx\xf7\x7f\xa9\xf4\xb9\xcb\xa7\xf8\x0b\xf3\xbc\xe7\xbd\xbe\xbe\x06\x13e\xd7|\x9d\xd4\r\xa7\xf1=\xe7=\xef\xbe\x9ds\xef\x8b\xdf\xfe\xf1\x9f\xbe\xfd\xee_\xff\xf2\'[\xbf\xeb\xfd\xa0\xed/\xff\xfb\x0f\xff\xf8?\xbf\xb5u=\xb0\xdb\xff\xcf\xe3o\xed\xf6?~\xf7G\xdb\xbf\xfc\x8f\xef\xfe\xd7?\xdaz\xba\x1f\xda\xbe\x1bu\x0c\x8d\r\xb8\x06\x86\x87\x1c\x83v\xfb\x9f\xfe\xdce\xeb\xeaw\xb9F\xbe\xb1\xdb?|\xf8\xd0\xfd\xe1q\xf7\xf0\xe8[\xfbw\xffl\xff\x99`\xf5\xd0d\xe3\xeb\x03\x97efw\x9f\xab\xaf\xeb\xd5\x17\xbfy!W\xfc\xf9\xfd\xe0\xd0\xd8\xcb\x16pz\x9e={\xc6\xd3y\xb0\xd3\xd1G\xff\x7
复制代码


read之后,无法decode,(我试了一大堆编码方式,全不行)
麻烦各位帮忙看一下
爬虫这方面确实没啥经验
最佳答案
2021-3-26 17:49:50
  1. import requests
  2. from lxml import html

  3. url = "http://www.xbiquge.la/1/1508/1158793.html"

  4. headers={
  5.             'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
  6.             }
  7. request = requests.get(url,headers=headers)

  8. request = request.content.decode("utf-8")
  9.    
  10. selector = html.fromstring(request)

  11. txt_list = selector.xpath('//div[@id = "content"]/text()')

  12. txt = ''

  13. for i in txt_list:
  14.     i = repr(i).replace(r'\r','').replace(r'\xa0','').replace("'",'')
  15.     txt +=i

  16. print(txt)
复制代码

评分

参与人数 1贡献 +3 收起 理由
雨如洁 + 3

查看全部评分

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

使用道具 举报

发表于 2021-3-26 17:49:50 | 显示全部楼层    本楼为最佳答案   
  1. import requests
  2. from lxml import html

  3. url = "http://www.xbiquge.la/1/1508/1158793.html"

  4. headers={
  5.             'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
  6.             }
  7. request = requests.get(url,headers=headers)

  8. request = request.content.decode("utf-8")
  9.    
  10. selector = html.fromstring(request)

  11. txt_list = selector.xpath('//div[@id = "content"]/text()')

  12. txt = ''

  13. for i in txt_list:
  14.     i = repr(i).replace(r'\r','').replace(r'\xa0','').replace("'",'')
  15.     txt +=i

  16. print(txt)
复制代码

评分

参与人数 2荣誉 +10 鱼币 +10 贡献 +6 收起 理由
Daniel_Zhang + 5 + 5 + 3 厉害
昨非 + 5 + 5 + 3

查看全部评分

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

使用道具 举报

 楼主| 发表于 2021-3-26 17:52:29 From FishC Mobile | 显示全部楼层
逃兵 发表于 2021-3-26 17:49

谢谢兄弟了,好多表达都没见过
我回去再研究研究,最佳回去后就设置哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-26 20:55:03 | 显示全部楼层
昨非 发表于 2021-3-26 17:52
谢谢兄弟了,好多表达都没见过
我回去再研究研究,最佳回去后就设置哈

爬虫也是我的弱项,这我抄的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-26 22:13:17 | 显示全部楼层
逃兵 发表于 2021-3-26 20:55
爬虫也是我的弱项,这我抄的

嗯,我就是最近赶鸭子上架,直接课设上手
问题挺多的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 00:42:33 | 显示全部楼层
  1. url = "http://www.xbiquge.la/1/1508/1158793.html"

  2. headers = {
  3.     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
  4. }


  5. def way_1():
  6.     import requests
  7.     html = requests.get(url, headers=headers)
  8.     html.encoding = 'utf-8'
  9.     return html.text


  10. def way_2():
  11.     from urllib.request import Request, urlopen
  12.     import gzip
  13.     request = Request(url, headers=headers)
  14.     response = urlopen(request)
  15.     return gzip.decompress(response.read()).decode("utf-8")


  16. print(way_1())
  17. print(way_2())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 00:43:40 | 显示全部楼层
上面提供了两种方法

第一个是我自己的,第二个是在你的基础上改良的

百度是个好东西,虽然没谷歌好

https://blog.csdn.net/DylanYuan/article/details/81533105
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-27 01:12:45 From FishC Mobile | 显示全部楼层
Daniel_Zhang 发表于 2021-3-27 00:43
上面提供了两种方法

第一个是我自己的,第二个是在你的基础上改良的

确实,
但现在百度体验越来越差了
净是些个广告
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-27 01:14:43 | 显示全部楼层
昨非 发表于 2021-3-27 01:12
确实,
但现在百度体验越来越差了
净是些个广告


还不睡?

你想想哈,百度的对手是谁啊?没有吧应该?没个对手怎么竞争

要不是yahoo和谷歌退出中国市场,百度早就

百度用户,满打满算 14亿,谷歌 70 亿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 05:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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