鱼C论坛

 找回密码
 立即注册
查看: 1851|回复: 7

[已解决]设置反爬

[复制链接]
发表于 2021-10-1 11:34:10 | 显示全部楼层 |阅读模式

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

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

x
爬取猫眼电影的榜单信息,大神们不用给我在做一个爬虫了,帮忙看看我这个哪里出错了

  1. import requests
  2. from requests.exceptions import RequestException
  3. import re

  4. url = f"https://maoyan.com/board/4"
  5. headers = {
  6.     'Content-Type': 'text/html; charset=utf-8',
  7.     'Origin': r'https://maoyan.com',
  8.     'Referer': r'https://maoyan.com/board/4',
  9.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
  10. }
  11. cookies = {
  12.     '__mta=145013643.1632827792736.1632838202638.1633053347625.31; uuid_n_v=v1;',
  13.     'uuid=85DA7560204D11EC9B102B1A959882D0A97A7D0F881E4ACF90ED4B138FB89D1E;',
  14.     '_lxsdk_cuid=17c2c1edc9ec8-0f7c6d795c2f3d-a7d193d-144000-17c2c1edc9ec8;',
  15.     '_lxsdk=85DA7560204D11EC9B102B1A959882D0A97A7D0F881E4ACF90ED4B138FB89D1E;',
  16.     '_csrf=c996b5dd3a909586fa13721ce47e20c12cb7b63b30767bb486a654d025637589;',
  17.     'Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1632995467,1632999503,1633005709,1633053333;',
  18.     '_lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; __mta=145013643.1632827792736.1632838202638.1633053344019.31;',
  19.     'Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1633053348; _lxsdk_s=17c39cfd427-2ae-2d5-358%7C%7C1'
  20. }

  21. def get_one_page(url):
  22.     try:
  23.         response = requests.get(url=url,headers=headers,cookies=cookies)
  24.         if response.status_code == 200:
  25.             return response.text
  26.         return None
  27.     except RequestException:
  28.         return None

  29. def main():
  30.     html = get_one_page(url)
  31.     print(html)

  32. if __name__ == '__main__':
  33.     main()
复制代码


打印出来的错误信息:
C:\Users\lijin\AppData\Local\Programs\Python\Python39-32\python.exe E:/QMDownload/pythonProject/main.py
Traceback (most recent call last):
  File "E:\QMDownload\pythonProject\main.py", line 37, in <module>
    main()
  File "E:\QMDownload\pythonProject\main.py", line 33, in main
    html = get_one_page(url)
  File "E:\QMDownload\pythonProject\main.py", line 25, in get_one_page
    response = requests.get(url=url,headers=headers,cookies=cookies)
  File "C:\Users\lijin\AppData\Local\Programs\Python\Python39-32\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\lijin\AppData\Local\Programs\Python\Python39-32\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\lijin\AppData\Local\Programs\Python\Python39-32\lib\site-packages\requests\sessions.py", line 528, in request
    prep = self.prepare_request(req)
  File "C:\Users\lijin\AppData\Local\Programs\Python\Python39-32\lib\site-packages\requests\sessions.py", line 444, in prepare_request
    cookies = cookiejar_from_dict(cookies)
  File "C:\Users\lijin\AppData\Local\Programs\Python\Python39-32\lib\site-packages\requests\cookies.py", line 524, in cookiejar_from_dict
    cookiejar.set_cookie(create_cookie(name, cookie_dict[name]))
TypeError: 'set' object is not subscriptable

Process finished with exit code 1
最佳答案
2021-10-1 11:49:07
  1. import requests
  2. from requests.exceptions import RequestException
  3. import re

  4. url = f"https://maoyan.com/board/4"
  5. headers = {
  6.     'Content-Type': 'text/html; charset=utf-8',
  7.     'Origin': r'https://maoyan.com',
  8.     'Referer': r'https://maoyan.com/board/4',
  9.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
  10. }
  11. cookies={"Cookie":"""BAIDUID=40CCF4A88D7A40027303B674BBBDC765:FG=1; BIDUPSID=40CCF4A88D7A40027303B674BBBDC765; PSTM=1630132482; HMACCOUNT=D52E9D01CA6F704F; __yjs_duid=1_bc89b7a9955e4efdc44cb50fde742e8c1630141832244; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; ab_sr=1.0.1_ZDY3YTFlYTEyOTQyN2FiMTczZDdmNDhkNDQ4ZmVjNDYyOThmMDI0MzdiOTJjYzBmZGVjZDE5YTc3MjJiYzE3OGY4ZDU0YTI4ZTBjZDVhZjVlMTY2NGViMGM1NGE2YjhiNmY4NDQ2YmFmMjBmNGExNjM4NDMwMWRkMTBkYzY1ZDgyODVhZmQ2ZWQzZjYyMTJmMmIzYTQ4NjkxMDZhYzlkNA==; H_PS_PSSID=34648_34068_31660_34655_34711_34524_34584_34707_34517_26350_34423_22160_34691_34678"""}

  12. def get_one_page(url):
  13.     try:
  14.         response = requests.get(url,headers=headers,cookies=cookies)
  15.         if response.status_code == 200:
  16.             return response.text
  17.         return None
  18.     except RequestException:
  19.         return None

  20. def main():
  21.     html = get_one_page(url)
  22.     print(html)

  23. if __name__ == '__main__':
  24.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-1 11:49:07 | 显示全部楼层    本楼为最佳答案   
  1. import requests
  2. from requests.exceptions import RequestException
  3. import re

  4. url = f"https://maoyan.com/board/4"
  5. headers = {
  6.     'Content-Type': 'text/html; charset=utf-8',
  7.     'Origin': r'https://maoyan.com',
  8.     'Referer': r'https://maoyan.com/board/4',
  9.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
  10. }
  11. cookies={"Cookie":"""BAIDUID=40CCF4A88D7A40027303B674BBBDC765:FG=1; BIDUPSID=40CCF4A88D7A40027303B674BBBDC765; PSTM=1630132482; HMACCOUNT=D52E9D01CA6F704F; __yjs_duid=1_bc89b7a9955e4efdc44cb50fde742e8c1630141832244; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; ab_sr=1.0.1_ZDY3YTFlYTEyOTQyN2FiMTczZDdmNDhkNDQ4ZmVjNDYyOThmMDI0MzdiOTJjYzBmZGVjZDE5YTc3MjJiYzE3OGY4ZDU0YTI4ZTBjZDVhZjVlMTY2NGViMGM1NGE2YjhiNmY4NDQ2YmFmMjBmNGExNjM4NDMwMWRkMTBkYzY1ZDgyODVhZmQ2ZWQzZjYyMTJmMmIzYTQ4NjkxMDZhYzlkNA==; H_PS_PSSID=34648_34068_31660_34655_34711_34524_34584_34707_34517_26350_34423_22160_34691_34678"""}

  12. def get_one_page(url):
  13.     try:
  14.         response = requests.get(url,headers=headers,cookies=cookies)
  15.         if response.status_code == 200:
  16.             return response.text
  17.         return None
  18.     except RequestException:
  19.         return None

  20. def main():
  21.     html = get_one_page(url)
  22.     print(html)

  23. if __name__ == '__main__':
  24.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-1 11:50:42 | 显示全部楼层
两个错误哈。
第一个 requests的get函数内第一个参数直接就是url,不是url=url
第二个 cookie的格式错了哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-1 11:53:09 | 显示全部楼层
青出于蓝 发表于 2021-10-1 11:50
两个错误哈。
第一个 requests的get函数内第一个参数直接就是url,不是url=url
第二个 cookie的格式错了 ...

嗯,好的谢谢回复
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-1 11:57:52 | 显示全部楼层
寄安 发表于 2021-10-1 11:53
嗯,好的谢谢回复

简直了,谢谢你,困扰了我三天的问题,我一直在改,刚开始我还以为是网站网页压缩了,哎,这次总算运行对了,万分感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-1 12:09:27 | 显示全部楼层
青出于蓝 发表于 2021-10-1 11:50
两个错误哈。
第一个 requests的get函数内第一个参数直接就是url,不是url=url
第二个 cookie的格式错了 ...

可以请问一下你,那个Cookie在那里找到的,就像这个BAIDUID=40CCF4A88D7A40027303B674BBBDC765:FG=1;
有点啰嗦,还请你指点一下

我在这个位置找的

我在这个位置找的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-1 12:11:38 | 显示全部楼层
青出于蓝 发表于 2021-10-1 11:50
两个错误哈。
第一个 requests的get函数内第一个参数直接就是url,不是url=url
第二个 cookie的格式错了 ...

我就只在这两个位置找的Cookies
屏幕截图 2021-10-01 121051.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-1 12:18:18 | 显示全部楼层
青出于蓝 发表于 2021-10-1 11:50
两个错误哈。
第一个 requests的get函数内第一个参数直接就是url,不是url=url
第二个 cookie的格式错了 ...

额,那个原来可以,就是没有你写的那么漂亮,打扰了,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 01:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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