请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

用requests抓取csdn论坛分支页面的帖子,输出结果是乱码,被反爬虫了?应该怎样解决!谢谢!

正在回答 回答被采纳积分+3

4回答

bobby 2019-05-17 13:07:32
import requests

from selenium import webdriver

browser = webdriver.Chrome(executable_path="C:/慕课网课程/driver/chromedriver-233.exe")

browser.get("https://bbs.csdn.net/")

cookies = browser.get_cookies()
import time
time.sleep(5)
cookies={}
for cookie in browser.get_cookies():
    cookies[cookie['name']]=cookie['value']
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0',
           "Referer": "https://bbs.csdn.net/",
           }

tt = requests.get("https://bbs.csdn.net/",  headers=headers, cookies=cookies).text
print(tt)

这里使用了chrome方式先获取到cookie,然后后续的每次请求都带上cookie,只需要获取一次cookie就行了, chromedirver如果这里不懂的话可以先看看9-6小结 然后你再看这个代码就很容易懂了,我也会尽快在课程中添加文件说明这里的问题

1 回复 有任何疑惑可以回复我~
  • 提问者 慕粉13980767054 #1
    太谢谢Bobby老师了,下来在看看。
    回复 有任何疑惑可以回复我~ 2019-05-17 13:09:16
  • bobby 回复 提问者 慕粉13980767054 #2
    好的,加油
    回复 有任何疑惑可以回复我~ 2019-05-17 13:47:05
  • bobby 回复 提问者 慕粉13980767054 #3
    视频已经录制完成,今明两天应该就会上线, 7-8小节 你关注一下
    回复 有任何疑惑可以回复我~ 2019-05-20 12:05:56
提问者 慕粉13980767054 2019-05-16 11:45:47

https://img1.sycdn.imooc.com//szimg/5cdcdca1000183ab13020158.jpg

获取网页的截图

0 回复 有任何疑惑可以回复我~
  • bobby #1
    这个不是乱码,是因为csdn改变了加载页面的规则,让页面访问之前先执行一段js代码然后才能重新加载页面,我正在调研这个问题
    回复 有任何疑惑可以回复我~ 2019-05-17 12:47:51
提问者 慕粉13980767054 2019-05-16 11:43:48

#源代码

import requests

from scrapy import Selector

domain = "https://bbs.csdn.net/forums/JavaScript"


res = requests.get(domain).text

print(res)


0 回复 有任何疑惑可以回复我~
bobby 2019-05-16 11:24:48

乱码能截图我看看吗?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号