当前位置:   article > 正文

Python爬虫-随机UA,识别HTML源码中的url并跳转

随机ua

需要导入的Python库有这些:

  1. import requests
  2. import time
  3. from bs4 import BeautifulSoup
  4. import random

首先来了解,什么是UA?

UA就是:User-Agent,是一种浏览器的标识,爬虫除非是访问网站或APP专用数据api接口,正常的HTTP请求都需要进行ua(User-Agent)优化,因为ua是浏览器标识,如果http请求没有ua,或ua太少,都会被网站运维统计异常的,ua越丰富分布就越真实。

为了丰富UA,我们在请求头 headers 里面添加随机 UA ,随机UA怎么添加呢?

回顾Python基础里面有一个随机函数:random函数,它可以生成随机数,而如果给定可以库,它可以实现随机抽取,如下:

  1. user_agents = [
  2. 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.3',
  3. 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 EDGE/16.16299',
  4. 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36',
  5. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
  6. 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; AS; rv:11.0) like Gecko'
  7. ]
  8. random_user_agent = random.choice(user_agents)
  9. headers = {'User-Agent': random_user_agent}

我给定了五个UA,random函数可以从中随机依次抽取,到这里,我们实现了随机UA。

接下来要实现:识别HTML源码中的url并跳转,即:

1.爬取html 2.识别包含的url 3.再次请求url

实现此功能需要用到另一个标准库:BeautifulSoup库

BeautifulSoup是什么?

BeautifulSoup库是python的一个HTML或者XML的解析库,可以通过它来实现对网页的解析,从而获得想要的数据。

使用以下命令安装该库:

pip install beautifulsoup4

实现识别HTML源码中的url并跳转:

  1. url = "https://www.86000k.com/"
  2. # 发送HTTP请求并获取响应
  3. response = requests.get(url,headers=headers)
  4. # 解析HTML源代码
  5. soup = BeautifulSoup(response.text, "html.parser")
  6. # 提取出a标签的href属性中的链接
  7. links = soup.find_all("a")
  8. for link in links:
  9. href = link.get("href")
  10. # 判断链接是否为完整的URL,如果不是则拼接上初始URL的协议和主机名
  11. if not href.startswith("http"):
  12. href = url + href
  13. # 打印处理完的链接
  14. print(href)
  15. time.sleep(2)
  16. # 访问提取出来的链接并获取响应
  17. response = requests.get(href)
  18. # 对响应进行处理

完整的代码如下:

  1. import requests
  2. import time
  3. from bs4 import BeautifulSoup
  4. import random
  5. user_agents = [
  6. 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.3',
  7. 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 EDGE/16.16299',
  8. 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36',
  9. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
  10. 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; AS; rv:11.0) like Gecko'
  11. ]
  12. random_user_agent = random.choice(user_agents)
  13. headers = {'User-Agent': random_user_agent}
  14. # 访问的初始URL
  15. url = "https://www.86000k.com/"
  16. # 发送HTTP请求并获取响应
  17. response = requests.get(url,headers=headers)
  18. # 解析HTML源代码
  19. soup = BeautifulSoup(response.text, "html.parser")
  20. # 提取出a标签的href属性中的链接
  21. links = soup.find_all("a")
  22. for link in links:
  23. href = link.get("href")
  24. # 判断链接是否为完整的URL,如果不是则拼接上初始URL的协议和主机名
  25. if not href.startswith("http"):
  26. href = url + href
  27. # 打印处理完的链接
  28. print(href)
  29. time.sleep(2)
  30. # 访问提取出来的链接并获取响应
  31. response = requests.get(href)
  32. # 对响应进行处理

运行结果如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/540569
推荐阅读
相关标签
  

闽ICP备14008679号