[CPyUG] 解析百度搜索结果

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

[CPyUG] 解析百度搜索结果

hejibo
大家好,

想与大家分享一个网页解析的方法。
我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好, 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
我今天借鉴了网上的写法,觉得这个idea很不错。 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。 您也可以在下面的链接中下载源代码。

http://www.ueseo.org/download/python/BaiduResult.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
百度关键词排名
By Jibo He @ ueseo.org
[hidden email]
26 Oct, 2011
http://www.ueseo.org/download/python/BaiduResult.py
'''
import sys
import urllib ,urllib2
import re

def getNakedDomain(url):
    '''
    return the naked domain based on url
    '''
    if url.startswith('http://'):
        url=url[7:]
    if url.startswith('www.'):
        url=url[4:]
    if "/" in url:
        url =url[0:url.find('/')]

    return url

def baidu100(w):
    url= "http://www.baidu.com/s?"
    values = {
    "w":w.encode('gbk','ignore')
    }
    data = urllib.urlencode(values)
    newurl = url + data+"&rn=100"
    response = urllib2.urlopen(newurl)
    the_page = response.read().decode('gbk','ignore')
    return the_page

def baidu10(w):
    url= "http://www.baidu.com/s?"
    values = {
    "w":w.encode('gbk','ignore')
    }
    data = urllib.urlencode(values)
    newurl = url + data
    response = urllib2.urlopen(newurl)
    the_page = response.read().decode('gbk','ignore')
    return the_page

def ResultLinksFilter(data,mysite):
    o = re.compile('''href="(.+?)"''')
    f = o.findall(data)
    line = 1
    isInFirst100 = False
    for ff in f:
        if not re.search("baidu",ff) and not re.search("bing",ff) and ff.startswith('http://'):

            if getNakedDomain(mysite) in ff:
                isInFirst100 = True
                break

                #print "******* " ,line ,ff
            #print line ,ff
            line += 1
    if isInFirst100:
        return isInFirst100,line,ff
    else:
        return isInFirst100,-1,'-1'

if __name__ == "__main__":
    mysite = 'pconline.com.cn'
    keyword='手机'

    mysite = 'http://www.ueseo.org'
    mysite = 'http://ueseo.org'
    mysite = 'http://blog.ueseo.org'
    #mysite = 'http://bbs.ueseo.org'
    keyword='ueseo'
    keyword='优异搜索'

    data = baidu100(keyword.decode('utf-8'))
    isInFirst100,line,link =ResultLinksFilter(data,mysite)
    print line,link
---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

风向标
感谢分享,保存代码明天试用下。

在 2011年10月27日 上午1:29,He Jibo <[hidden email]>写道:
大家好,

想与大家分享一个网页解析的方法。
我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好, 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
我今天借鉴了网上的写法,觉得这个idea很不错。 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。 您也可以在下面的链接中下载源代码。

http://www.ueseo.org/download/python/BaiduResult.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
百度关键词排名
By Jibo He @ ueseo.org
[hidden email]
26 Oct, 2011
http://www.ueseo.org/download/python/BaiduResult.py
'''
import sys
import urllib ,urllib2
import re

def getNakedDomain(url):
    '''
    return the naked domain based on url
    '''
    if url.startswith('http://'):
        url=url[7:]
    if url.startswith('www.'):
        url=url[4:]
    if "/" in url:
        url =url[0:url.find('/')]

    return url

def baidu100(w):
    url= "http://www.baidu.com/s?"
    values = {
    "w":w.encode('gbk','ignore')
    }
    data = urllib.urlencode(values)
    newurl = url + data+"&rn=100"
    response = urllib2.urlopen(newurl)
    the_page = response.read().decode('gbk','ignore')
    return the_page

def baidu10(w):
    url= "http://www.baidu.com/s?"
    values = {
    "w":w.encode('gbk','ignore')
    }
    data = urllib.urlencode(values)
    newurl = url + data
    response = urllib2.urlopen(newurl)
    the_page = response.read().decode('gbk','ignore')
    return the_page

def ResultLinksFilter(data,mysite):
    o = re.compile('''href="(.+?)"''')
    f = o.findall(data)
    line = 1
    isInFirst100 = False
    for ff in f:
        if not re.search("baidu",ff) and not re.search("bing",ff) and ff.startswith('http://'):

            if getNakedDomain(mysite) in ff:
                isInFirst100 = True
                break

                #print "******* " ,line ,ff
            #print line ,ff
            line += 1
    if isInFirst100:
        return isInFirst100,line,ff
    else:
        return isInFirst100,-1,'-1'

if __name__ == "__main__":
    mysite = 'pconline.com.cn'
    keyword='手机'

    mysite = 'http://www.ueseo.org'
    mysite = 'http://ueseo.org'
    mysite = 'http://blog.ueseo.org'
    #mysite = 'http://bbs.ueseo.org'
    keyword='ueseo'
    keyword='优异搜索'

    data = baidu100(keyword.decode('utf-8'))
    isInFirst100,line,link =ResultLinksFilter(data,mysite)
    print line,link
---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

Shell Xu
In reply to this post by hejibo

那百度改一下不合乎标准的链接呢?

From P81HD

在 2011-10-27 上午1:30,"He Jibo" <[hidden email]>写道:
大家好,

想与大家分享一个网页解析的方法。
我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好, 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
我今天借鉴了网上的写法,觉得这个idea很不错。 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。 您也可以在下面的链接中下载源代码。

http://www.ueseo.org/download/python/BaiduResult.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
百度关键词排名
By Jibo He @ ueseo.org
[hidden email]
26 Oct, 2011
http://www.ueseo.org/download/python/BaiduResult.py
'''
import sys
import urllib ,urllib2
import re

def getNakedDomain(url):
    '''
    return the naked domain based on url
    '''
    if url.startswith('http://'):
        url=url[7:]
    if url.startswith('www.'):
        url=url[4:]
    if "/" in url:
        url =url[0:url.find('/')]

    return url

def baidu100(w):
    url= "http://www.baidu.com/s?"
    values = {
    "w":w.encode('gbk','ignore')
    }
    data = urllib.urlencode(values)
    newurl = url + data+"&rn=100"
    response = urllib2.urlopen(newurl)
    the_page = response.read().decode('gbk','ignore')
    return the_page

def baidu10(w):
    url= "http://www.baidu.com/s?"
    values = {
    "w":w.encode('gbk','ignore')
    }
    data = urllib.urlencode(values)
    newurl = url + data
    response = urllib2.urlopen(newurl)
    the_page = response.read().decode('gbk','ignore')
    return the_page

def ResultLinksFilter(data,mysite):
    o = re.compile('''href="(.+?)"''')
    f = o.findall(data)
    line = 1
    isInFirst100 = False
    for ff in f:
        if not re.search("baidu",ff) and not re.search("bing",ff) and ff.startswith('http://'):

            if getNakedDomain(mysite) in ff:
                isInFirst100 = True
                break

                #print "******* " ,line ,ff
            #print line ,ff
            line += 1
    if isInFirst100:
        return isInFirst100,line,ff
    else:
        return isInFirst100,-1,'-1'

if __name__ == "__main__":
    mysite = 'pconline.com.cn'
    keyword='手机'

    mysite = 'http://www.ueseo.org'
    mysite = 'http://ueseo.org'
    mysite = 'http://blog.ueseo.org'
    #mysite = 'http://bbs.ueseo.org'
    keyword='ueseo'
    keyword='优异搜索'

    data = baidu100(keyword.decode('utf-8'))
    isInFirst100,line,link =ResultLinksFilter(data,mysite)
    print line,link
---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

依云
In reply to this post by hejibo
On Wed, Oct 26, 2011 at 12:29:46PM -0500, He Jibo wrote:

> 大家好,
>
> 想与大家分享一个网页解析的方法。
> 我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好,
> 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
> 我今天借鉴了网上的写法,觉得这个idea很不错。
> 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。
> 您也可以在下面的链接中下载源代码。
>
> http://www.ueseo.org/download/python/BaiduResult.py

HTTPS 站点被干掉了?

如果你想以不变应万变的话,至少要渲染下页面嘛,当然 Javascript 肯定得支持,
不然人家改 Ajax 你就找不到数据了。然后根据渲染结果来判断不同样式的链接
(或响应鼠标点击事件的元素)的权重,同时要注意去掉推广链接。最好用上机器
学习。

;-)

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

hejibo
这个源代码链接对不起大家了。 我放.zip或者文本文件,都可以直接访问的,不需要我写代码实现。不过你可以到
http://www.ueseo.org/download/python,然后选择下载BaiduResult.py就可以了。


---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info


2011/10/26 依云 <[hidden email]>
On Wed, Oct 26, 2011 at 12:29:46PM -0500, He Jibo wrote:
> 大家好,
>
> 想与大家分享一个网页解析的方法。
> 我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好,
> 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
> 我今天借鉴了网上的写法,觉得这个idea很不错。
> 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。
> 您也可以在下面的链接中下载源代码。
>
> http://www.ueseo.org/download/python/BaiduResult.py

HTTPS 站点被干掉了?

如果你想以不变应万变的话,至少要渲染下页面嘛,当然 Javascript 肯定得支持,
不然人家改 Ajax 你就找不到数据了。然后根据渲染结果来判断不同样式的链接
(或响应鼠标点击事件的元素)的权重,同时要注意去掉推广链接。最好用上机器
学习。

;-)

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

于海
用lxml,使用xpath,“//a”,一样能提取所有的链接啊。你这个方法有什么优势呢?

在 2011年10月27日 下午12:26,He Jibo <[hidden email]>写道:
这个源代码链接对不起大家了。 我放.zip或者文本文件,都可以直接访问的,不需要我写代码实现。不过你可以到
http://www.ueseo.org/download/python,然后选择下载BaiduResult.py就可以了。



---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info


2011/10/26 依云 <[hidden email]>
On Wed, Oct 26, 2011 at 12:29:46PM -0500, He Jibo wrote:
> 大家好,
>
> 想与大家分享一个网页解析的方法。
> 我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好,
> 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
> 我今天借鉴了网上的写法,觉得这个idea很不错。
> 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。
> 您也可以在下面的链接中下载源代码。
>
> http://www.ueseo.org/download/python/BaiduResult.py

HTTPS 站点被干掉了?

如果你想以不变应万变的话,至少要渲染下页面嘛,当然 Javascript 肯定得支持,
不然人家改 Ajax 你就找不到数据了。然后根据渲染结果来判断不同样式的链接
(或响应鼠标点击事件的元素)的权重,同时要注意去掉推广链接。最好用上机器
学习。

;-)

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

Andelf


2011/10/27 于海 <[hidden email]>
用lxml,使用xpath,“//a”,一样能提取所有的链接啊。你这个方法有什么优势呢?


不依赖第三方库, 不用纠结lxml在windows上怎么装 

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

依云
In reply to this post by 于海
少个二进制的依赖啊 :)

On Thu, Oct 27, 2011 at 01:21:51PM +0800, 于海 wrote:

> 用lxml,使用xpath,“//a”,一样能提取所有的链接啊。你这个方法有什么优势呢?
>
> 在 2011年10月27日 下午12:26,He Jibo <[hidden email]>写道:
>
> > 这个源代码链接对不起大家了。 我放.zip或者文本文件,都可以直接访问的,不需要我写代码实现。不过你可以到
> > http://www.ueseo.org/download/ <http://goog_1976190952>python<http://www.ueseo.org/download/python/>
> > ,然后选择下载BaiduResult.py<http://www.ueseo.org/download/python/BaiduResult.py>
> > 就可以了。
> >
> >
> >
> > ---------------------------
> > He Jibo
> > Department of Psychology,
> > Beckman Institute for Advanced Science and Technology
> > University of Illinois, Urbana Champaign,
> > 603 East Daniel St.,
> > Champaign, IL 61820
> > website: www.hejibo.info
> >
> >
> > 2011/10/26 依云 <[hidden email]>
> >
> >> On Wed, Oct 26, 2011 at 12:29:46PM -0500, He Jibo wrote:
> >> > 大家好,
> >> >
> >> > 想与大家分享一个网页解析的方法。
> >> > 我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好,
> >> > 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
> >> > 我今天借鉴了网上的写法,觉得这个idea很不错。
> >> > 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。
> >> > 您也可以在下面的链接中下载源代码。
> >> >
> >> > http://www.ueseo.org/download/python/BaiduResult.py
> >>
> >> HTTPS 站点被干掉了?
> >>
> >> 如果你想以不变应万变的话,至少要渲染下页面嘛,当然 Javascript 肯定得支持,
> >> 不然人家改 Ajax 你就找不到数据了。然后根据渲染结果来判断不同样式的链接
> >> (或响应鼠标点击事件的元素)的权重,同时要注意去掉推广链接。最好用上机器
> >> 学习。
> >>
> >> ;-)
> >>
> >> --
> >> Best regards,
> >> lilydjwg
> >>
> >> Linux Vim Python 我的博客
> >> http://lilydjwg.is-programmer.com/
> >>
> >> --
> >> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> >> 发言: [hidden email]
> >> 退订: [hidden email] (向此发空信即退!)
> >> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> >> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> >> 强烈: 建议使用技巧: 如何有效地报告Bug
> >>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
> >>
> >
> >  --
> > 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> > 发言: [hidden email]
> > 退订: [hidden email] (向此发空信即退!)
> > 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> > 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> > 强烈: 建议使用技巧: 如何有效地报告Bug
> > http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
> >
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>         http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

Andelf


2011/10/27 依云 <[hidden email]>
少个二进制的依赖啊 :)


话说那个还真能下到别人编译好的.... 

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

于海
在windows下,使用easy_install 安装lxml也是很容易的。完全没有技术门槛

在 2011年10月27日 下午2:36,Andelf <[hidden email]>写道:


2011/10/27 依云 <[hidden email]>
少个二进制的依赖啊 :)


话说那个还真能下到别人编译好的.... 

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

Wang Xuerui
在 2011年10月27日 下午2:43,于海 <[hidden email]> 写道:
> 在windows下,使用easy_install 安装lxml也是很容易的。完全没有技术门槛
>
我试过。。好像依赖cython。。

还有64bit build的问题。。我没试过,渣上网本速度太慢了,懒得装mingw64或者vs2010了

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

lu_zi_2000
现在都流行在win下玩64位python了?
于 2011年10月27日 15:17, Wang Xuerui 写道:
> 在 2011年10月27日 下午2:43,于海 <[hidden email]> 写道:
>> 在windows下,使用easy_install 安装lxml也是很容易的。完全没有技术门槛
>>
> 我试过。。好像依赖cython。。
>
> 还有64bit build的问题。。我没试过,渣上网本速度太慢了,懒得装mingw64或者vs2010了
>


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

Wang Xuerui
在 2011年10月27日 下午3:32,lu_zi_2000 <[hidden email]> 写道:
> 现在都流行在win下玩64位python了?
额,只是我比较喜欢倒腾而已。。。。
自己在拿python做一个小软件,过段时间会开源,里面用到lxml。。正好前几天装了个64bit的瘟妻,配的64-bit python,所以

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

hejibo
In reply to this post by 于海
个人感觉用正则应该会比第三方库快一些吧?安和打包lxml都非常困难。
---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info


2011/10/27 于海 <[hidden email]>
用lxml,使用xpath,“//a”,一样能提取所有的链接啊。你这个方法有什么优势呢?

在 2011年10月27日 下午12:26,He Jibo <[hidden email]>写道:

这个源代码链接对不起大家了。 我放.zip或者文本文件,都可以直接访问的,不需要我写代码实现。不过你可以到
http://www.ueseo.org/download/python,然后选择下载BaiduResult.py就可以了。



---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info


2011/10/26 依云 <[hidden email]>
On Wed, Oct 26, 2011 at 12:29:46PM -0500, He Jibo wrote:
> 大家好,
>
> 想与大家分享一个网页解析的方法。
> 我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好,
> 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
> 我今天借鉴了网上的写法,觉得这个idea很不错。
> 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。
> 您也可以在下面的链接中下载源代码。
>
> http://www.ueseo.org/download/python/BaiduResult.py

HTTPS 站点被干掉了?

如果你想以不变应万变的话,至少要渲染下页面嘛,当然 Javascript 肯定得支持,
不然人家改 Ajax 你就找不到数据了。然后根据渲染结果来判断不同样式的链接
(或响应鼠标点击事件的元素)的权重,同时要注意去掉推广链接。最好用上机器
学习。

;-)

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 解析百度搜索结果

Morya Feng
个人用的lxml不是最新的,
pypi上有多个版本的下载啊。
2.6~3.2版本都覆盖。


另,py2exe打包稍微麻烦点,不过google一下应该就可以解决。

在 2011年10月27日 下午7:22,He Jibo <[hidden email]>写道:
个人感觉用正则应该会比第三方库快一些吧?安和打包lxml都非常困难。

---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info


2011/10/27 于海 <[hidden email]>
用lxml,使用xpath,“//a”,一样能提取所有的链接啊。你这个方法有什么优势呢?

在 2011年10月27日 下午12:26,He Jibo <[hidden email]>写道:

这个源代码链接对不起大家了。 我放.zip或者文本文件,都可以直接访问的,不需要我写代码实现。不过你可以到
http://www.ueseo.org/download/python,然后选择下载BaiduResult.py就可以了。



---------------------------
He Jibo
Department of Psychology,
Beckman Institute for Advanced Science and Technology
University of Illinois, Urbana Champaign,
603 East Daniel St.,
Champaign, IL 61820
website: www.hejibo.info


2011/10/26 依云 <[hidden email]>
On Wed, Oct 26, 2011 at 12:29:46PM -0500, He Jibo wrote:
> 大家好,
>
> 想与大家分享一个网页解析的方法。
> 我尝试过多种方法来解析百度搜索结果,比如pyquery, lxml, beautifulsoup等,今天发现,这些方法都不太好,
> 如果baidu把页面结构变化一下,可能就不起作用了。 这些页面解析库使用起来也挺麻烦。
> 我今天借鉴了网上的写法,觉得这个idea很不错。
> 我们可以用正则先把所有的链接找出来,然后筛选掉不合乎标准的链接。下面是我的代码,可以提取前100个或者前10个百度搜索结果。
> 您也可以在下面的链接中下载源代码。
>
> http://www.ueseo.org/download/python/BaiduResult.py

HTTPS 站点被干掉了?

如果你想以不变应万变的话,至少要渲染下页面嘛,当然 Javascript 肯定得支持,
不然人家改 Ajax 你就找不到数据了。然后根据渲染结果来判断不同样式的链接
(或响应鼠标点击事件的元素)的权重,同时要注意去掉推广链接。最好用上机器
学习。

;-)

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html