小编add*_*ons的帖子

python:使用BeautifulSoup的Google Search Scraper

目标:将搜索字符串传递给谷歌搜索并抓取网址,标题以及与网址标题一起发布的小描述.

我有以下代码,目前我的代码只提供前10个结果,这是一个页面的默认谷歌限制.我不确定如何在webscraping期间真正处理分页.此外,当我查看实际的页面结果和打印出来的内容时,存在差异.我也不确定解析span元素的最佳方法是什么.

到目前为止,我的跨度如下,我想删除<em>元素并连接其余的stings.最好的方法是什么?

<span class="st">The <em>Beautiful Soup</em> Theater Collective was founded in the summer of 2010 by its Artistic Director, Steven Carl McCasland. A continuation of a student group he <b>...</b><br /></span
Run Code Online (Sandbox Code Playgroud)

码:

from BeautifulSoup import BeautifulSoup
import urllib, urllib2

def google_scrape(query):
    address = "http://www.google.com/search?q=%s&num=100&hl=en&start=0" % (urllib.quote_plus(query))
    request = urllib2.Request(address, None, {'User-Agent':'Mosilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11'})
    urlfile = urllib2.urlopen(request)
    page = urlfile.read()
    soup = BeautifulSoup(page)

    linkdictionary = {}

    for li …
Run Code Online (Sandbox Code Playgroud)

python screen-scraping urllib beautifulsoup web-scraping

6
推荐指数
1
解决办法
9415
查看次数

Python:使用图像文件发布请求

我有一台服务器,我试图建立一个发布请求以取回数据。我认为实现此目的的一种方法是在标头中添加参数并发出请求。但是我收到的错误很少,我不太了解,无法继续前进。

HTML表格

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body>
     <form method="POST" action="http://some.server.com:61235/imgdigest" enctype="multipart/form-data">
        quality:<input type="text" name="quality" value="2"><br>
        category:<input type="text" name="category" value="1"><br>
        debug:<input type="text" name="debug" value="1"><br>
        image:<input type="file" name="image"><br>
        <input type="submit" value="Submit">
     </form>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Python代码:我已经根据答案编辑了问题

import urllib, urllib2
import base64

if __name__ == '__main__':
    page = 'http://some.site.com:61235/'
    with open("~/image.jpg", "rb") as image_file:
        encoded_image = base64.b64encode(image_file.read())
    raw_params = {'quality':'2','category':'1','debug':'0', 'image': encoded_image}
    params = urllib.urlencode(raw_params)
    request = urllib2.Request(page, params)
    request.add_header("Content-type", "application/x-www-form-urlencoded; charset=UTF-8")
    page = urllib2.urlopen(request)
    info = page.info() 
Run Code Online (Sandbox Code Playgroud)

错误:

    page …
Run Code Online (Sandbox Code Playgroud)

python post urllib urllib2 request

5
推荐指数
1
解决办法
1万
查看次数

BeautifulSoup:如何在特定的html标记后提取数据

我有跟随html,我试图弄清楚我是如何告诉BeautifulSoup在某些html元素后提取td.在这种情况下,我想在<td>之后获取数据<td>Color Digest</td>

<tr>
<td> Color Digest </td>
<td> 2,36,156,38,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

这是整个HTML

<html>
<head>
<body>
<div align="center">
<table cellspacing="0" cellpadding="0" style="clear:both; width:100%;margin:0px; font-size:1pt;">
<br>
<br>
<table>
<table>
<tbody>
<tr bgcolor="#AAAAAA">
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<td> Color Digest </td>
<td> 2,36,156,38,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, </td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

html python beautifulsoup scrape

5
推荐指数
1
解决办法
4619
查看次数

Python numpy:将字符串转换为numpy数组

我有跟随我放在一起的字符串:

v1fColor = '2,4,14,5,0,0,0,0,0,0,0,0,0,0,12,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,0,0,0,0,1,0,0,0,0,0,0,0,0,0,20,9,0,0,0,2,2,0,0,0,0,0,0,0,0,0,13,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,10,8,0,0,0,1,2,0,0,0,0,0,0,0,0,0,17,17,0,0,0,3,6,0,0,0,0,0,0,0,0,0,7,5,0,0,0,2,0,0,0,0,0,0,0,0,0,0,4,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,6,6,0,0,0,2,3'
Run Code Online (Sandbox Code Playgroud)

我将它视为一个矢量:长话短说明它是图像直方图的前景:

我有以下lambda函数来计算两个图像的余弦相似度,所以我试图将它转换为numpy.array但我失败了:

这是我的lambda函数

import numpy as NP
import numpy.linalg as LA
cx = lambda a, b : round(NP.inner(a, b)/(LA.norm(a)*LA.norm(b)), 3)
Run Code Online (Sandbox Code Playgroud)

所以我尝试了以下将此字符串转换为numpy数组:

v1fColor = NP.array([float(v1fColor)], dtype=NP.uint8)
Run Code Online (Sandbox Code Playgroud)

但我最终得到以下错误:

    v1fColor = NP.array([float(v1fColor)], dtype=NP.uint8)
ValueError: invalid literal for float(): 2,4,14,5,0,0,0,0,0,0,0,0,0,0,12,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,6,0,0,0,0,1,0,0,0,0,0,0,0,0,0,20,9,0,0,0,2,2,0,0,0,0,0,0,0,0,0,13,6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,10,8,0,0,0,1,2,0,0,0,0,0,0,0,0,0,17,17,
Run Code Online (Sandbox Code Playgroud)

python trigonometry numpy vector

5
推荐指数
4
解决办法
7252
查看次数

优化算法从O(n ^ 3)到O(n ^ 2)

我想解决的问题如下:

假设您在二维空间中获得了一组点,并且我们如何获得最大数量的共线点.

我用Java做了这个问题.首先,我创建了一个检查线性的方法:

return (y1 - y2) * (x1 - x3) = (y1 - y3) * (x1 - x2);
Run Code Online (Sandbox Code Playgroud)

然后我使用了三个for循环,这使我的算法O(n ^ 3).但我试图看看这是否可以减少到O(n ^ 2).

在网上搜索后,我发现我的实现与此处的内容非常相似.所以问题是我们如何才能提高复杂性.任何例子都会很棒.

这就是我最终做的事情:

int p = 2; 
for (int i = 0; i < points.lenght(); i++) {
    for (int j = i+1; j < points.length(); j++) {
        int count = 2;
        for (int k =0; i < points.length(); k++) {
            if (k == i || k == j)
                 continue;
            //use linearity function to …
Run Code Online (Sandbox Code Playgroud)

java algorithm optimization

5
推荐指数
1
解决办法
957
查看次数

用透明颜色填充密度曲线

我有一个数据框,想要根据两列做一个叠加密度图.我希望颜色是透明的.我使用填充选项完成了此操作,并且基本上将填充分配为因子列.如果默认情况下有一个因子列,则所有填充都将是透明的.

但在这样的情况下,没有因素我们如何用透明填充它.

library("ggplot2")
vec1 <- data.frame(x=rnorm(2000, 0, 1))
vec2 <- data.frame(x=rnorm(3000, 1, 1.5))

ggplot() + geom_density(aes(x=x), fill="red", data=vec1) + 
  geom_density(aes(x=x), fill="blue", data=vec2)
Run Code Online (Sandbox Code Playgroud)

我尝试添加,geom_density(alpha=0.4)但它没有任何好处. 在此输入图像描述

r ggplot2 kernel-density density-plot

5
推荐指数
1
解决办法
8315
查看次数

Python维护列表交集的顺序

我有一个列表A和列表B,我想从这两个列表中获取公共元素,但希望当我获取公共元素时,它们应该保持 List 的顺序A

首先,我开始将它们转换为集合并取交叉点,但这存在维护顺序的问题。

common = list(set(A).intersection(set(B)))
Run Code Online (Sandbox Code Playgroud)

所以我决定做列表理解:

common = [i for i in A if i in B]
Run Code Online (Sandbox Code Playgroud)

我正进入(状态

IndexError: too many indices for array
Run Code Online (Sandbox Code Playgroud)

python list

5
推荐指数
1
解决办法
2357
查看次数

spark-scala:如果另一个RDD中不存在RDD的记录,则过滤RDD

我有一个RDD,其结构如下:

((user_id,item_id,rating))
Run Code Online (Sandbox Code Playgroud)

我们称这个RDD为训练

然后还有另一个具有相同结构的rdd:

((user_id,item_id,rating))
Run Code Online (Sandbox Code Playgroud)

这个rdd作为测试

我想确保测试中的数据不会出现在每个用户的列车中.所以我们说吧

train = {u1,item2: u1,item4 : u1,item3} test={u1,item2:u1, item5}
Run Code Online (Sandbox Code Playgroud)

我想确保从u1训练数据中删除item2.

所以我开始做的是groupBy rdd(s)(user_id,item_id)

 val groupedTrainData = trainData.groupBy(x => (x._1, x._2))
Run Code Online (Sandbox Code Playgroud)

但我觉得这不是要走的路.

scala apache-spark

5
推荐指数
1
解决办法
1598
查看次数

Pandas 将对象列转换为 str - 列包含 unicode、float 等

我有 Pandas 数据框,其中列类型显示为object但是当我尝试转换为字符串时,

df['column'] = df['column'].astype('str')

UnicodeEncodeError 被抛出: *** UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

我的下一个方法是处理编码部分: df['column'] = filtered_df['column'].apply(lambda x: x.encode('utf-8').strip())

但这会导致以下错误: *** AttributeError: 'float' object has no attribute 'encode'

将此列转换为字符串的最佳方法是什么。

列中的字符串示例

Thank you :)
Thank You !!!
responsibilities/assigned job.
Run Code Online (Sandbox Code Playgroud)

utf-8 python-2.7 pandas

5
推荐指数
1
解决办法
1万
查看次数

Python:如何使用生成器来避免sql内存问题

我有以下访问mysql数据库的方法,并且在我无权访问的服务器中执行查询以改变有关增加内存的任何内容.我是发电机的新手,并开始阅读更多关于它的信息,并认为我可以将其转换为使用发电机.

def getUNames(self):
    globalUserQuery = ur'''SELECT gu_name FROM globaluser WHERE gu_locked = 0'''
    global_user_list = []
    try:
        self.gdbCursor.execute(globalUserQuery)
        rows = self.gdbCursor.fetchall()
        for row in rows:
            uName = unicode(row['gu_name'], 'utf-8')
            global_user_list.append(uName)
        return global_user_list
    except Exception, e:
        traceback.print_exc()
Run Code Online (Sandbox Code Playgroud)

我使用此代码如下:

for user_name in getUNames():
...
Run Code Online (Sandbox Code Playgroud)

这是我从服务器端获得的错误:

^GOut of memory (Needed 725528 bytes)
Traceback (most recent call last):
...
packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
OperationalError: (2008, 'MySQL client ran out of memory')
Run Code Online (Sandbox Code Playgroud)

我应该如何使用生成器来避免这种情况:

while true:
   self.gdbCursor.execute(globalUserQuery)
   row = self.gdbCursor.fetchone()
   if row …
Run Code Online (Sandbox Code Playgroud)

python mysql yield

4
推荐指数
1
解决办法
4675
查看次数