模拟浏览器、用代理ip登陆网页爬取数据

  有一些网站他们有反爬虫的机制,不会让你轻易的爬取数据,这就是我们说的爬虫与反爬虫之间的斗争,但不是说不能爬就不能爬的,我们可以使用多种办法来爬取我们所要的内容。

1.模拟浏览器登陆爬取数据
import urllib.request
import re
url="http://www.baidu.com"
#可以随便一个网页
headers=("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")
#模拟浏览器用户代理headers,浏览器字段名(打开浏览器f12查看)
opener=urllib.request.build_opener()
#创建一个opener对象
opener.addheaders=[headers]
#addheaders属性去打开,但是这样会报错
urllib.request.install_opener(opener)
#我们需要将opener添加为全局变量,urlopen都将会以模拟的headers去啪取网页
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
#data就是爬取到的数据
2.用代理ip取爬取网页

  因为一些网站如果你用你自己的ip地址通过爬虫同一时间大量频繁的访问,那些网站会识别出你用的是爬虫,这样会封你的ip,这样你就爬不到数据了。
  接下来用代理ip地址去爬取数据:

import urllib.request
import re
def ues_Proxy(url,proxy_addr):                                          
    #找代理爬数据
    proxy=urllib.request.ProxyHandler({"http":proxy_addr})              
    #建立代理proxy_addr{ip加端口号}
    opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandler)
    #打开代理(urllib.request.HTTPHandler)固定写法
    urllib.request.install_opener(opener)                               
    #定义全局opener
    data=urllib.request.urlopen(url)                                    
    #打开想爬取的网页
    return data

proxy_addr="219.141.153.41:80"
url="http://www.baidu.com"
data=ues_Proxy(url,proxy_addr)                          
#调用   
print(data)


 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Selenium 是一个用于自动化测试的工具,它可以通过模拟浏览器来访问网站并执行各种操作。使用 Selenium 可以编写脚本来自动点击标题并爬取详细内容。 具体来说,首先需要使用 Selenium 在浏览器中打开网站,然后使用 Selenium 提供的 API 来定位网页上的标题元素,并使用 `click()` 方法来点击标题。这样就可以打开详细内容的页面。然后,可以使用 Selenium 的 `find_element_by_*` 等方法来定位详细内容所在的元素,并使用 `text` 属性来获取元素中的文本内容。 下面是一个简单的示例代码,假设要爬取的网站为 "https://example.com": ``` from selenium import webdriver # 打开浏览器 driver = webdriver.Chrome() driver.get("https://example.com") # 定位标题元素并点击 title_element = driver.find_element_by_css_selector("h1.title") title_element.click() # 定位详细内容元素并获取文本 content_element = driver.find_element_by_css_selector("div.content") content = content_element.text # 关闭浏览器 driver.quit() # 打印爬取的内容 print(content) ``` 注意:爬取网站内容时应注意遵守网站的服务条款和隐私政策,并避免造成网站的负载过大。 ### 回答2: Selenium是一种自动化测试工具,它可以模拟浏览器的行为并进行网页的自动化操作。它可以打开网页、点击按钮、输入文字等,还可以获取网页中的内容并进行爬取。 使用Selenium来模拟浏览器自动点击标题并爬取详细内容的过程如下: 1. 首先,需要安装Selenium库,并下载相应的浏览器驱动,如Chrome驱动。 2. 接下来,引入Selenium库,并初始化浏览器驱动,如Chrome驱动:driver = webdriver.Chrome("驱动路径") 3. 打开目标网页:driver.get("网页URL") 4. 定位到标题元素,并模拟点击操作:title_element = driver.find_element_by_xpath("标题元素的XPath"),title_element.click() 5. 等待页面加载完成,可以使用time.sleep()来设置等待时间。 6. 接下来,可以使用Selenium的方法获取需要爬取的详细内容,如使用driver.find_element_by_xpath()定位到具体内容的元素,并使用text属性获取文本内容。 7. 将获取到的详细内容保存下来,可以使用文件操作相关的方法。 8. 进行下一轮的循环操作,翻页或点击下一个标题。 需要注意的是,使用Selenium进行爬取时需要注意网站的反爬机制,尽量避免对网站造成过大的访问负荷,可以设置合理的等待时间和间隔时间,以免被网站限制或封禁IP。 综上所述,使用Selenium来模拟浏览器自动点击标题并爬取详细内容的过程相对简单,但需要了解网页的结构和元素定位的方式,并合理处理可能遇到的反爬机制。同时,Selenium也可以结合其他库和工具进行更为复杂的爬虫任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值