使用Python登录LinkedIn并获取搜索结果
很抱歉这个愚蠢的问题,但我对编程如此陌生,我的论文还有一个截止日期。我非常感谢你的耐心和帮助 我的目标是从LinkedIn获取数据。我刚刚从youtube视频中了解到的一种可能的方法是在谷歌上搜索,然后将链接刮取以进一步刮取使用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_
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&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&uact=8&ved=0CGIQFjAE&url=https%3A%2F%2Fwww.linkedin.com%2Fjob%2Fgoogle%2Fbig-data-jobs%2F&ei=U9TsU8mECZOkyQSLxoCYAg&usg=AFQjCNGlr9VqOU8WSGS_8eJpVqWpKM3rIQ&sig2=lFrE7FgtzqS4dfSD-k_cKA&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/&sa=U&ei=6ejsU4ipGYGBygTnpICIAw&ved=0CCwQFjAA&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()