针对的问题:
我现在有个梯子,可以用浏览器浏览外网,但是ping不通
并且在python中直接用requests.get(url)
的方法会返回None
具体原因为啥我也不不懂,
方法
既然浏览器能上,那么就可以让python模拟浏览器进行上网
幸运的是,python提供了selenium工具包用来模仿浏览器操作
在使用该工具时,你需要添加浏览器的driver引擎,并把该引擎添加到工作目录下,我使用的是Edge,具体在哪里下载我忘了,我也是在网上搜的。。,这里是下载好的文件msedgedriver.exe
下载好之后要将该文件重命名为msedgedriver.exe
,因为python找的就是这个文件
from selenium import webdriver
from selenium.webdriver.common.by import By
option = webdriver.EdgeOptions()
option.add_argument("headless")
# 这里适用Edge浏览器
driver = webdriver.Edge(options=option)
driver.get("输入你想要的外网地址")
html_page = driver.page_source
print(html_page)
获取到了html后,就可以使用BeautifulSoup进行愉快的爬虫啦~
当然selenium还提供了网页控件的点击输入操作,例如:
# 通过XPATH找到文本框,并添加关键字
driver.find_element(by=By.XPATH, value='输入控件的XPATH地址').send_keys(keyword)
# 通过XPATH找到按钮,并点击
driver.find_element(by=By.XPATH, value='输入控件的XPATH地址').click()