网页源代码抓取工具(环境的搭建以及简单的工具介绍-1.selenium)
优采云 发布时间: 2022-02-16 07:17网页源代码抓取工具(环境的搭建以及简单的工具介绍-1.selenium)
一、环境的搭建和简单工具的引入
1.selenium,一个用于 Web 应用程序测试的工具。它的特点是直接在浏览器中运行,就像真正的用户在操作一样。新版本 selenium2 集成了 Selenium1.0 和 WebDriver;
2.webDriver的工作原理是:通过向Webdriver发送指令来执行代码,让Webdriver知道自己要做什么操作,Webdriver会根据这些操作来控制浏览器界面,比如查找页面元素、发送文本等实现事件点击等;
3.pyquery工作原理如下:这里使用的pyquery主要是一个提取html代码数据的库,可以用来代替beautifulsoup和h5的正则表达式提取。
如何导入所需的库:
大部分教程使用pip install命令导入库,但是当你安装了多个python版本或者不知道你的python路径时,可能无法在python中调用下载的python库,所以直接使用pycharm这里要导入,示例如下:
点击文件->设置
点击python解释器右上角的加号,
在界面中搜索需要的库,点击intsall package,即可导入。
二.使用selenium模拟浏览器访问京东页面。
以上功能是打开京东,在搜索框中输入内容框指示的部分,然后搜索。如果代码报错无法打开chrome,是因为没有使用webdriver_manager库。添加此库以在线自动下载 chromedriver。是的 webdriver.chrome 作品。
三. 模拟连续翻页,方便搜索
功能代码如下:
def next_page(page_number): try: input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#J_bottomPage > span.p-skip > input'))) submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#J_bottomPage > span.p-skip > a'))) input.clear() input.send_keys(page_number) submit.click() wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR,'#J_bottomPage > span.p-num > a.curr'),str(page_number))) get_product() except TimeoutException: next_page(page_number)
函数的功能为模拟在输入框中输入页码page_number,然后使用sunbmit.click语句吗,模拟点击翻页。四.对数据进行抓取,并进行解析。函数代码如下:
def get_product(): # wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#J_goodsList .gl-warp .gl-item'))) #检测图片是否加载完成 html = browser.page_source #获取网页源代码 doc = pq(html) items = doc('#J_goodsList .gl-warp .gl-item').items() #获取所有的选择内容 for item in items: product = { 'image': item.find('.p-img img').attr('src'), #通过获取src属性来获取图片 'price': item.find('.p-price').text(), #获取文字内容 'name': item.find('.p-name').text(), #获取物品标题 'shop': item.find('.p-shop').text() #获取商铺信息 } print(product)
此处使用到的库为pyquery,通过selenium库对网页源代码进行获取,然后通过pyquery的find语句查找相应的元素装载到product中,最后进行打印。
最后小编想说:我是一名python开发工程师,整理了一套最新的python系统学习教程。如果你想要这些资料,可以关注私信小编“01”(免费分享)希望能帮到你。