使用Python登录LinkedIn并获取搜索结果

使用Python登录LinkedIn并获取搜索结果,python,web-scraping,linkedin,Python,Web Scraping,Linkedin,很抱歉这个愚蠢的问题,但我对编程如此陌生,我的论文还有一个截止日期。我非常感谢你的耐心和帮助 我的目标是从LinkedIn获取数据。我刚刚从youtube视频中了解到的一种可能的方法是在谷歌上搜索,然后将链接刮取以进一步刮取 import mechanize import re from bs4 import BeautifulSoup br = mechanize.Browser() br.addheaders = [('User-agent','Mozilla/5.0')] br.set_

很抱歉这个愚蠢的问题,但我对编程如此陌生,我的论文还有一个截止日期。我非常感谢你的耐心和帮助

我的目标是从LinkedIn获取数据。我刚刚从youtube视频中了解到的一种可能的方法是在谷歌上搜索,然后将链接刮取以进一步刮取

import mechanize
import re
from bs4 import BeautifulSoup

br = mechanize.Browser()
br.addheaders = [('User-agent','Mozilla/5.0')]
br.set_handle_robots(False)
html = br.open('http://google.com/search?q=site:linkedin.com%2Fjob%2F+big+data')
html = html.read().lower()

#let handle the unicode character
html = unicode(html,errors='ignore')

#raw result
#print html

soup = BeautifulSoup(html)
#print soup
在汤里,我看到这一部分包含了我想要刮的链接

<div data-async-context="query:site%3Alinkedin.com%2Fjob%2F%20big%20data" id="ires">
...    
<a href="/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=5&amp;cad=rja&amp;uact=8&amp;ved=0CGIQFjAE&amp;url=https%3A%2F%2Fwww.linkedin.com%2Fjob%2Fgoogle%2Fbig-data-jobs%2F&amp;ei=U9TsU8mECZOkyQSLxoCYAg&amp;usg=AFQjCNGlr9VqOU8WSGS_8eJpVqWpKM3rIQ&amp;sig2=lFrE7FgtzqS4dfSD-k_cKA&amp;bvm=bv.72938740,d.aWw" onmousedown="return rwt(this,'','','','5','AFQjCNGlr9VqOU8WSGS_8eJpVqWpKM3rIQ','lFrE7FgtzqS4dfSD-k_cKA','0CGIQFjAE','','',event)" wrc_done="true" data-href="https://www.linkedin.com/job/google/big-data-jobs/"><em>Big Data</em> Jobs at Google | LinkedIn</a>
...
</div>

在浏览器中查看时,我看到了,但在使用Python下载时,我只看到了。看起来所有的数据async-*属性都是用Javascript添加的。然而,我认为你可以通过稍微改变你的循环得到你想要的

import urlparse

for google_body in soup.findAll(id='ires'):
    for google_links in google_body.findAll('a'):
        # *href* looks something like:
        #   /url?q=https://www.linkedin.com/job/big-data-jobs/&amp;sa=U&amp;ei=6ejsU4ipGYGBygTnpICIAw&amp;ved=0CCwQFjAA&amp;usg=AFQjCNG_JhHqlpkvZ4DSgABsqaRt-hR6uA
        href = google_links.get('href')

        # Parse the query arguments out from *href*.
        # *args* will look something like:
        #   q=https://www.linkedin.com/job/big-data-jobs/&sa=U&ei=6ejsU4ipGYGBygTnpICIAw&ved=0CCwQFjAA&usg=AFQjCNG_JhHqlpkvZ4DSgABsqaRt-hR6uA
        # and then:
        #   {'q': ['https://www.linkedin.com/job/big-data-jobs/'], 'usg': ['AFQjCNG_JhHqlpkvZ4DSgABsqaRt-hR6uA'], 'sa': ['U'], 'ei': ['6ejsU4ipGYGBygTnpICIAw'], 'ved': ['0CCwQFjAA']}
        args = urlparse.urlparse(href).query
        args = urlparse.parse_qs(args)
        url = args['q'][0]
        print url # https://www.linkedin.com/job/big-data-jobs/
作为参考,我使用以下方法下载了该页面:

import urllib2
req = urllib2.Request('http://google.com/search?q=site:linkedin.com%2Fjob%2F+big+data', headers={'User-agent': 'Mozilla/5.0'})
resp = urllib2.urlopen(req)
html = resp.read()

最简单的方法是使用库来拉取页面并发送请求(如登录),然后使用来解析每个页面的html。@cpburnz当我评论说他没有任何代码时,只是笼统地问了这个问题@cpburnz其实并不重要,只是想证明我没有疯。事实上,您的回复向我展示了他的最新问题,我很高兴OP能够跟进代码,所以谢谢!
import urllib2
req = urllib2.Request('http://google.com/search?q=site:linkedin.com%2Fjob%2F+big+data', headers={'User-agent': 'Mozilla/5.0'})
resp = urllib2.urlopen(req)
html = resp.read()