鱼C论坛

 找回密码
 立即注册
查看: 2256|回复: 5

[已解决]python 爬虫问题求助

[复制链接]
发表于 2021-5-22 21:08:26 | 显示全部楼层 |阅读模式

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

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

x
因为网页上存在分页,观察了下分页是ddlpage发生了变化,可是下边的代码爬取时还是只爬取了一页,求个大神指点
  1. import requests
  2. from bs4 import BeautifulSoup
  3. import re
  4. import time


  5. def gethtml():
  6.     url ="https://www.zjgrc.com/posSearchRslt.aspx?textPosKey=沙钢集团"
  7.     headers = {
  8.       "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
  9.     }
  10.     for i in range(0,2):
  11.         data = {
  12.             "ddlPage": 0,
  13.             "ddlPage": 1

  14.         }
  15.         r = requests.post(url, data=data)
  16.         time.sleep(2)

  17.         print(r.text)
  18.         print("结束")

  19. if __name__ == '__main__':
  20.     gethtml()
复制代码
最佳答案
2021-5-23 21:08:23
代码小白liu 发表于 2021-5-22 22:02
方便的话给点代码吧
  1. import requests
  2. import re

  3. url = 'https://www.zjgrc.com/posSearchRslt.aspx?textPosKey=%E6%B2%99%E9%92%A2%E9%9B%86%E5%9B%A2'
  4. headers = {
  5.     'User-Agent': 'Mozilla/5.0',
  6. }

  7. # 第一页
  8. res = requests.get(url, headers=headers)

  9. # 获取翻页参数
  10. state = re.findall('__VIEWSTATE" value="(.*?)" />', res.text)[0]
  11. state_generator = re.findall('__VIEWSTATEGENERATOR" value="(.*?)" />', res.text)[0]
  12. event_validation = re.findall('__EVENTVALIDATION" value="(.*?)" />', res.text)[0]

  13. # 翻页(第二页)
  14. data = {
  15.     '__EVENTTARGET': 'lbNext',
  16.     '__EVENTARGUMENT': '',
  17.     '__LASTFOCUS': '',
  18.     '__VIEWSTATE': state,
  19.         '__VIEWSTATEGENERATOR': state_generator,
  20.     '__EVENTVALIDATION': event_validation,
  21.     'hfKey': '沙钢集团',
  22.     'txtDw': '',
  23.     'txtDw_TextBoxWatermarkExtender_ClientState': '',
  24.     'txtPos': '',
  25.     'txtPos_TextBoxWatermarkExtender_ClientState': '',
  26.     'ddlPage': 0
  27. }
  28. res1 = requests.post(url, headers=headers, data=data)
  29. print(res1.text)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-5-22 21:21:22 | 显示全部楼层
for i in range(0,2):
        data = {
            "ddlPage": i
        }
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-22 21:25:20 | 显示全部楼层
路神 发表于 2021-5-22 21:21
for i in range(0,2):
        data = {
            "ddlPage": i


不行,我最开始也是这么写的,爬下来还是只有一页
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-22 21:50:41 | 显示全部楼层
代码小白liu 发表于 2021-5-22 21:25
不行,我最开始也是这么写的,爬下来还是只有一页

其他参数也要填
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-22 22:02:14 | 显示全部楼层
路神 发表于 2021-5-22 21:50
其他参数也要填

方便的话给点代码吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-23 21:08:23 | 显示全部楼层    本楼为最佳答案   
代码小白liu 发表于 2021-5-22 22:02
方便的话给点代码吧
  1. import requests
  2. import re

  3. url = 'https://www.zjgrc.com/posSearchRslt.aspx?textPosKey=%E6%B2%99%E9%92%A2%E9%9B%86%E5%9B%A2'
  4. headers = {
  5.     'User-Agent': 'Mozilla/5.0',
  6. }

  7. # 第一页
  8. res = requests.get(url, headers=headers)

  9. # 获取翻页参数
  10. state = re.findall('__VIEWSTATE" value="(.*?)" />', res.text)[0]
  11. state_generator = re.findall('__VIEWSTATEGENERATOR" value="(.*?)" />', res.text)[0]
  12. event_validation = re.findall('__EVENTVALIDATION" value="(.*?)" />', res.text)[0]

  13. # 翻页(第二页)
  14. data = {
  15.     '__EVENTTARGET': 'lbNext',
  16.     '__EVENTARGUMENT': '',
  17.     '__LASTFOCUS': '',
  18.     '__VIEWSTATE': state,
  19.         '__VIEWSTATEGENERATOR': state_generator,
  20.     '__EVENTVALIDATION': event_validation,
  21.     'hfKey': '沙钢集团',
  22.     'txtDw': '',
  23.     'txtDw_TextBoxWatermarkExtender_ClientState': '',
  24.     'txtPos': '',
  25.     'txtPos_TextBoxWatermarkExtender_ClientState': '',
  26.     'ddlPage': 0
  27. }
  28. res1 = requests.post(url, headers=headers, data=data)
  29. print(res1.text)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 13:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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