[Python爬虫] 之十一:Selenium +phantomjs抓取活动树中会议活动

  最近在抓取活动树网站 (http://www.huodongshu.com/html/find.html) 上数据时发现,在用搜索框输入中文后,点击搜索,phantomjs抓取数据怎么也抓取不到,但是用IE驱动就可以找,后来才发现了原因。

  例如URL: http://www.huodongshu.com/html/find_search.html?search_keyword=数字, phantomjs抓取的内存中url变成了http://www.huodongshu.com/html/find_search.html?search_keyword=??,导致搜索的结果为0,就是没有搜索到。

  

  

  

  在搜索框输入英文是没有问题,奇怪输入中文就就变成了??,后来在活动行(http://www.huodongxing.com/)网站上直接输入数字后,变成了%E6%95%B0%E5%AD%97

  

  

  后来就想如果把对应的中文转换成%E6%95%B0%E5%AD%97 这样的编码,phantomjs能不能找到呢,比如:

  Url=‘http://www.huodongshu.com/html/find_search.html?search_keyword=%E6%95%B0%E5%AD%97‘,结果一测试果然可以找到,因此在用phantomjs抓取数据是,先把搜索中文关键字转换成url编码就解决问题了。

  具体有两个方法:

  一、

    import urllib

    s = ‘数字‘

    print urllib.quote(s)

   结果就是:%E6%95%B0%E5%AD%97
时间: 2024-10-13 15:54:19

[Python爬虫] 之十一:Selenium +phantomjs抓取活动树中会议活动的相关文章

[Python爬虫] 之九:Selenium +phantomjs抓取活动行中会议活动(单线程抓取)

思路是这样的,给一系列关键字:互联网电视:智能电视:数字:影音:家庭娱乐:节目:视听:版权:数据等.在活动行网站搜索页(http://www.huodongxing.com/search?city=%E5%85%A8%E5%9B%BD&pi=1)的文本输入框中分别输入每个关键字,在搜索结果中抓取需要的数据. 首先通过Selenium+IE驱动得到每个关键字搜索结果的url(首页,因为以后各个页的url就是索引不一样)和总页数,保存的列表里面.然后再循环列表,用Selenium +phantomj

Python爬虫--2019大学排名数据抓取

Python爬虫--2019大学排名数据抓取 准备工作 输入:大学排名URL连接 输出:大学排名信息屏幕输出 所需要用到的库:requests,bs4 思路 获取网页信息 提取网页中的内容并放到数据结构中 利用数据结构展示并输出结果 程序设计 定义函数getHTMLText()获取网页信息 定义函数UnivList()放入数据结构 定义函数printUnivList()输出到屏幕 总体而言: 写出需要自定义的函数,制作出总体的框架 写出主函数框架,实现功能 最后调用函数 步骤 查看url源代码

[Python爬虫] 之十三:Selenium +phantomjs抓取活动树会议活动数据

抓取活动树网站中会议活动数据(http://www.huodongshu.com/html/index.html) 具体的思路是[Python爬虫] 之十一中抓取活动行网站的类似,都是用多线程来抓取,但是由于活动树网站 ,每个关键字搜索页的ur是固定,比如搜索“数字”结果有470个结果,没页10条记录,第二页的url和第一页的 url是一样的. 因此针对每个关键字用一个线程进行搜索. 具体代码如下: # coding=utf-8import osimport refrom selenium im

Python爬虫成长之路:抓取证券之星的股票数据

获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所有A股数据.程序主要分为三个部分:网页源码的获取.所需内容的提取.所得结果的整理. 一.网页源码的获取 很多人喜欢用python爬虫的原因之一就是它容易上手.只需以下几行代码既可抓取大部分网页的源码. import urllib.request url='http://quote.stockstar

Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容

在上一篇python使用xslt提取网页数据中,要提取的内容是直接从网页的source code里拿到的. 但是对于一些Ajax或动态html, 很多时候要提取的内容是在source code找不到的,这种情况就要想办法把异步或动态加载的内容提取出来. python中可以使用selenium执行javascript,selenium可以让浏览器自动加载页面,获取需要的数据.selenium自己不带浏览器,可以使用第三方浏览器如Firefox, Chrome等,也可以使用headless浏览器如P

[Python爬虫] 之十:Selenium +phantomjs抓取活动行中会议活动(多线程抓取)

延续上个抓取活动行中会议活动的问题,上次使用是单线程的抓取,效率较低,现在使用多线程的抓取. 数据的抓取分为两个过程:首先获取每个关键字搜索结果对应的url和页数,保存在列表里面,这个过程用一个线程来实现(类似生产者),同时根据获取的关键字的url和页数,抓取对应的数据,这个过程用多线程来抓取(类似消费者) 这样整个抓取过程共用了144.366188 秒,采用单线程来进行抓取要用大概184秒,这样大概节省了40秒 具体代码如下: # coding=utf-8import osimport ref

C#使用Selenium+PhantomJS抓取数据

手头项目需要抓取一个用js渲染出来的网站中的数据.使用常用的httpclient抓回来的页面是没有数据.上网百度了一下,大家推荐的方案是使用PhantomJS.PhantomJS是一个没有界面的webkit浏览器,能够和浏览器效果一致的使用js渲染页面.Selenium是一个web测试框架.使用Selenium来操作PhantomJS绝配.但是网上的例子多是Python的.无奈,下载了python按照教程搞了一下,卡在了Selenium的导入问题上.遂放弃,还是用自己惯用的c#吧,就不信c#上没

[python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对比,你可以进一步加深Python爬虫的印象.同时,文章给出了我以前关于爬虫的基础知识介绍,方便新手进行学习.        总之,希望文章对你有所帮助,如果存在不错或者错误的地方,还请海涵~ 一. DOM树结构分析 豆瓣Top250电影网址:https://movie.douban.com/top2

python爬虫14--Selenium动态渲染页面抓取

1.声明浏览器对象 from selenium import webdriver browser = webdriver.Chrome() # browser = webdriver.Firefox() # browser = webdriver.Edge() 2.访问页面 from selenium import webdriver browser = webdriver.Chrome() url = 'http://www.baidu.com' browser.get(url) print(