问题:在Uni找到数学讲座的答案和练习.赫尔辛基
实际问题
Disallowrobots.txt中的.com制作网站列表对实际问题的建议
问题
可能重复:
使用Python从HTML文件中提取文本
Python中从HTML页面中提取文本的最佳方式是什么,就像复制粘贴时浏览器一样?
我编写了一个简单的PHP脚本来使用CURL获取网站的源代码:
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/curl/cacert.pem");
$data = curl_exec($ch);
$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($data === false)
    return false;
return array("content" => $data, "url" => $url, "httpcode" => $httpcode);
}
$data = file_get_contents_curl("https://www.facebook.com");
print_r($data);
在这个例子中,我正在获取Facebook源代码,但它获取的页面与不支持的浏览器相关.事实上,重定向后的最终URL是:http://www.facebook.com/unsupportedbrowser
有什么问题?
我想制作一个新的投注工具,但我需要一个赔率和结果的数据库,但在网络上找不到任何东西.我发现这个网站有很棒的存档:OddsPortal
我想做的就是从上面的页面中抓取结果和赔率.我发现一个名为Scrapy的工具可以做到,是真的吗?有人可以帮我提一些提示吗?
我正在试验/学习新的Task库,我使用WebClient和Task.Run编写了一个非常简单的html下载器.但是我的网络使用率永远不会超过5%.我想了解为什么以及如何改进我的代码以达到100%的网络使用/吞吐量(可能不可能,但它必须超过5%).
我也希望能够限制线程的数量,但它似乎并不像我想象的那么容易(即自定义任务调度程序).有没有办法只做这样的事情来设置最大线程数:something.SetMaxThread(2)?
internal static class Program
    {
        private static void Main()
        {
            for (var i = 0; i < 1000000; i++)
            {
                Go(i, Thread.CurrentThread.ManagedThreadId);
            }
            Console.Read();
        }
        private static readonly Action<int, int> Go = (counter, threadId) => Task.Run(() =>
        {
            var stopwatch = new Stopwatch();
            stopwatch.Start();
            var webClient = new WebClient();
            webClient.DownloadString(new Uri("http://stackoverflow.com"));
            stopwatch.Stop();
            Console.Write("{0} == {1} | ", threadId.ToString("D3"), Thread.CurrentThread.ManagedThreadId.ToString("D3"));
            Console.WriteLine("{0}: {1}ms ", counter.ToString("D3"), stopwatch.ElapsedMilliseconds.ToString("D4"));
        });
    }
这是@spender的异步版本.但是我的理解是await将"记住"该时间点并将下载切换到OS级别并跳过(2 console.write)并立即返回main并继续在for循环中调度剩余的Go方法.我理解正确吗?因此UI上没有阻止.
private static async void Go(int counter, int threadId)
{
    using …我想抓住印度新闻网站及其档案(例如thehindu.com,indianexpress.com和timesofindia.com).
我听说Java中的样板库用于提取内容.但是python中是否有任何库可以执行此操作以及如何执行此操作?
如果这是一个重复的问题,请帮我指出.
我想抓取NCBI网站,并通过以下链接发送蛋白质局部比对的请求:http: //blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM = blastp&BLAST_PROGRAMS = blastp&PAGE_TYPE = BlastSearch
我想知道我是否能够向此地址提交帖子请求,并使用PHP获取新页面中的结果.还有一个问题,在显示最终结果之前,页面经历了多次重定向 - 您可以使用以下输入进入文本区域来测试这种情况:
MHSSIVLATVLFVAIASASKTRELCMKSLEHAKVGTSKEAKQDGIDLYKHMFEHYPAMKKYFKHRENYTP
ADVQKDPFFIKQGQNILLACHVLCATYDDRETFDAYVGELMARHERDHVKVPNDVWNHFWEHFIEFLGSK
TTLDEPTKHAWQEIGKEFSHEISHHGRHSVRDHCMNSLEYIAIGDKEHQKQNGIDLYKHMFEHYPHMRKA
FKGRENFTKEDVQKDAFFVNKDTRFCWPFVCCDSSYDDEPTFDYFVDALMDRHIKDDIHLPQEQWHEFWK
LFAEYLNEKSHQHLTEAEKHAWSTIGEDFAHEADKHAKAEKDHHEGEHKEEHH
这是我的尝试:
$link = 'http://blast.ncbi.nlm.nih.gov/Blast.cgi?
PROGRAM=blastp&BLAST_PROGRAMS=blastp&PAGE_TYPE=BlastSearch';
$request = array(
    'http' => array(
        'method' => 'POST',
        'content' => http_build_query(array(
            'QUERY' => $aaText
            )
        ),
    )
);
$context = stream_context_create($request);
$html = file_get_html($link, false, $context);
echo $html;
这段代码为我提供了初始页面,好像没有完成POST一样.谢谢
UPDATE
我尝试过以下建议之一 - 古特.
这是我的新代码:
require_once 'goutte.phar';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', $link);
$form = $crawler->selectButton('b1')->form();
$crawler = $client->submit($form, array('QUERY' => $aaTest));
echo …这是我编写的用于抓取“blablacar”网站的代码。
# -*- coding: utf-8 -*-
import scrapy
class BlablaSpider(scrapy.Spider):
    name = 'blabla'
    allowed_domains = ['blablacar.in']
    start_urls = ['http://www.blablacar.in/ride-sharing/new-delhi/chandigarh']
    def parse(self, response):
        print(response.text)
运行上述程序时,我收到错误消息
2018-06-11 00:07:05 [scrapy.extensions.telnet] 调试:Telnet 控制台监听 127.0.0.1:6023 2018-06-11 00:07:06 [scrapy.core.engine] 调试:爬行 (403) ) http://www.blablacar.in/robots.txt> (referer: None) 2018-06-11 00:07:06 [scrapy.core.engine] DEBUG: Crawled (403) http://www.blablacar .in/ride-sharing/new-delhi/chandigarh> (referer: None) 2018-06-11 00:07:06 [scrapy.spidermiddlewares.httperror] INFO:忽略响应 <403 http://www.blablacar.in /ride-sharing/new-delhi/chandigarh >: HTTP 状态代码未处理或不允许 2018-06-11 00:07:06 [scrapy.core.engine] INFO: Closing spider (finished)
键入后,我正在尝试使用quickscrape编写网络爬虫程序
quickscrape \
  --url https://peerj.com/articles/384 \
  --scraper journal-scrapers/scrapers/peerj.json \
  --output peerj-384
  --outformat bibjson
并在我的终端中点击“Enter”,库将从爬虫中生成结果并将它们放入一个文件夹中。
现在我想编写一个 javascript 程序,以便为我调用这些终端命令,但我不确定如何与 node.js 中的终端进行交互。
是否有任何python爬虫可以从网页中提取所有数据:http://www.bestbuy.com/site/HTC+-+One+S+4G+Mobile+Phone+-+Gradient+Blue+%28T-Mobile %29/4980512.p?id = 1218587135819&skuId = 4980512&contract_desc = 在此页面中,客户评论有两个页面1和2.我想抓取他的网址并获取两个网页的内容.这是否可以使用python爬虫.
python crawler也支持所有现代GET/POST技术
web-crawler ×10
python ×4
php ×2
scrapy ×2
c# ×1
concurrency ×1
curl ×1
data-mining ×1
database ×1
extract ×1
facebook ×1
goutte ×1
html ×1
java ×1
javascript ×1
ncbi ×1
node.js ×1
python-3.x ×1
text ×1
web ×1
web-scraping ×1