Проблема, когда отключение проверило итераторы в vs2008 SP1 (_HAS_ITERATOR_DEBUGGING=0)

Попробуйте использовать библиотеку lxml. Ответ получен путем размещения запроса на URL с использованием запросов.

import requests
import lxml
from lxml import html

contact_list = []
def scrape(url, pages):

  for page in range(1, pages):
    headers = {
      "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
      "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36",
      "X-Requested-With": "XMLHttpRequest",
      "Cookie": "PHPSESSID=2q0tk3fi1kid0gbdfboh94ed56",
    }

    data = {
      "page": f"{page}"
    }

    r = requests.post(url, headers=headers, data=data)
    tree = html.fromstring(r.content)

    links= tree.xpath('//a[@class="link_orange"]')
    for link in links:
      # print(link.get('href'))
      contact_list.append(link.get('href'))


url = "http://www.indiabusinessguide.in/ajax_advertiselist.php"

scrape(url, 10)
print(contact_list)
print(len(contact_list))
7
задан Mihai Limbășan 25 April 2009 в 10:33
поделиться

4 ответа

Я только что попробовал это в VS2008 на Windows XP и получил предупреждение о переполнении буфера, как на VS2008 до, так и после SP1.

Интересно, что проблема кажется быть сосредоточенным вокруг передачи строки в do_stuff либо по ссылке, либо по значению - если я использую исходный код, он жалуется на переполнение буфера, но если я передаю строку в значении , он работает нормально. Это с многопоточной средой выполнения DLL отладки. Ошибка исчезает, когда вам нравится статическая среда выполнения MT Debug.

В обоих случаях предварительно скомпилированные заголовки были отключены, а файлы, которые обычно генерируют предварительно скомпилированные заголовки, были удалены из проекта.

После прочтения это статья на MSDN I '

6
ответ дан 6 December 2019 в 21:19
поделиться

Похоже, что это известная ошибка в VS2005, исправленная в VS2005 SP1:

Похоже, это было сделано парнем, который написал об этом на gamedev.net.

I 'я не уверен, как или почему он мог бы вернуться в VS2008 (есть ли у вас заголовки из VS2005, которые могут быть получены или что-то в этом роде?)

4
ответ дан 6 December 2019 в 21:19
поделиться

Ваш код работает нормально в режиме отладки / выпуска на моем VS2005. Я отключил предварительно скомпилированные заголовки и использую многопоточную версию DLL библиотеки времени выполнения.

Проверено с VS2008 SP1 на компьютере с Vista (без предварительно скомпилированных заголовков, многопоточная DLL). Работает просто отлично.

Проверьте вашу установку.

1
ответ дан 6 December 2019 в 21:19
поделиться

Я сообщил о проблеме на веб-сайте Microsoft. Они признали ошибку и сказали, что исправили ее в следующей версии.

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=435483

1
ответ дан 6 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: